Posts

Showing posts from January, 2024

[Day 30] 한국 소프트웨어 공학 학회 Day 1 및 Face recognition & Neural Style transfer

Image
 안녕하세요! 오늘은 Day 30입니다! Convolutional Neural Network 마지막 부분을 끝냈다 KCSE 2024 첫 날 일단, CNN 부분에 대해 요약해 보도록 하겠습니다 Week 4의 내용은 Face recognition하고 neural style transfer에 대한 것이다 Face recognition은 recognition과 verification의 차이를 잘 알아야 한다 verification은 얼굴을 보여주고 시스템에 있는 그 사람의 이미지와 비교하여 그 사람이 맞는지 검증 과정이다 recognition은 얼굴을 보여주고 시스템에 있는 모든 사진 중 그 사람의 얼굴이 있는지 검증 과정이다 평가 어떻게 하는가? 'similarity function'으로 이미지를 비교하고 차이도가 나온다 similarity 어떻게 계산하는가 ?  같은 모델에 사진을 다 주고 마지막 Dense 레이어의 데이터 비교하고 그런 식으로 손실 함수도 계산할 수 있다 변수 alpha도 있다. 이는 사진을 3장씩 사용하고 anchor A(자기의 이미지), positive P(다른 자기의 이미지), negative N(가짜 이미지)로 사용하는 것으로 손실 함수는 max between 0 and the difference between the absolute values of A - P, and A - N, and adding alpha. Alpha 크기에 따라 모델의 정확성이 다르다. 높다는 것은 모델이 얼굴을 인식하거나 거부할 때 모델이 더 확실하다는 것을 의미한다.  다른 방법은 로지스틱 회귀다    이런식으로도 face verification 모델을 만들 수 있다 Neural Style transfer 이는 이미지 C, S 주고, 나올 건 S 이미지의 스타일 > 이미지 C에 적용한다 여기 손실 함수는 C, S 이미지 피처의 차이를 계산하는 것이다 훈련 시킬 때 이미지 C의 변함을 볼 수 있다 그리고 자격증 ~~  자 ~ 한국 소프트웨어

[Day 29] Object detection 어떻게 되는 것일까?

Image
 안녕하세요! 오늘은 Day 29입니다! 오늘 공부했던 것은 Object detection 이건 course에 week 3 부분이다 자 ~~ 내용을 요약해 보도록 하겠습니다 1. Classification with localization 우리 모델에 어떤 사진을 주면 output은 찾아 봤던 object와 그 object의 'bounding box' 좌표도 포함한다 예를 들어, y은 [pc, bx,by,bh,bw,c1,c2,c3] 포함하며 pc는 object이 있는지 없는지 표하고, bx,by,bh,bw bounding box의 좌표이도, c1,c2,c3는 다중 분류의 변수이다 (c1 = pedestrian, c2 = car, c3 = motorcycle). 그런데 이런 모델 어떻게 훈련할까?  우선, 차 있는지 없는지 분류 모델 훈련하고서 Sliding windows detection 방법으로 차가 있는지 없는지 발견할 수 있겠다 그 창의 사이즈 다양하게 선정할 수 있다 그런데, 이 방법의 비용이 너무 크다고 발견했다, convolution으로 할 수 있는 방법이 만들어졌다 위에 경우에 square 하나씩 하나씩 창을 움직인데 convolution implementation으로 한꺼번에 다 할 수 있게 되었다   2. YOLO   You Only Look Once 알고리즘은 제일 널리 사용되는 알고리즘 중 하나이다. 속도가 빠르고 이미지를 주면 한꺼번에 처리할 수 있는 방법이다.  'Grid based approach'으로 사진이 여러 가지 창으로 나누고 그 창에 안에 있는 object의 bounding box와 pc (object 있는지 없는지 확률) 계산한다 3. Object detection 평가 Intersection over Union (IoU) 방법으로 평가할 수 있다 예측 bounding box와 정말 bounding box 있으면, Area of overlap (황색)과 Area of union (청색)으로 IoU

[Day 28] Convolutional Neural Networks 더 깊게 잠수하기

Image
 안녕하세요! 오늘은 Day 28입니다! 오늘은 CNN 지식을 넓히려고 했다 CNN by Andrew Ng 오늘의 내용이 좀 어려우면서도 재미있었다 CNN 기초 지식, 널리 사용하는 CNN 아키텍처 ( LeNet, AlexNet, VGG-16, ResNet, MobileNets)에 대해 공부했다 1. 기초 지식 conv layer 어떻게 되는지 다시 공부했다 filter 파라미터에 따라 다양한 피처에 대해 알 수 있다 훈련 중 w1....w9 파라미터를 공부할 수 있어서 이미지의 다양한 피처를 알 수 있게 된다 이 사진을 보시면 conv 레이어, pool 레이어로 모델을 구성했다.  pool 레이어 중 average, max 레이어가 있고 계산도 다르다. 좋은 아키텍처를 알고 싶으면 논문을 읽어서 알 수도 있다 2. 널리 사용하는 CNN 모델 LeNet 7 레이어: 3 conv, 2 pooling, 2 dense - 손으로 쓰는 손가락 인식을 위하여 AlexNet 8 레이어: 5 conv,  max-pooling layer, 3 dense VGG-16 conv + pool + dense layers ResNet 다양한 아키텍처: ResNet-18, ResNet-50, ResNet-101, and ResNet-152 ResNet의 'skip connections'으로 많이 깊은 딥러닝 신경망 모델 훈련하게 했다. ResNet 더 알아보기 위해 kaggle에서 직접 사용해 봐야 한다! ~ 중요한 것 같다 1x1 convolutions 1x1 convolutions 신기한 개념인데 이 개념을 제안했던 논문을 한번 봐야겠다 -  https://arxiv.org/abs/1409.4842   마지막으로, MobileNets normal conv으로 하면, 비용이 2160인데 Mobile net으로 하면 비용이 672이다 'normal convolution'의 과정이 복잡하고 계산적으로 비용이 많이 드는 것이다.  오늘의 내용을 좀 더 이해하

[Day 27] 딥러닝 모델 개선법 - 하이퍼파라미터 뉴닝, 정규화, 최적화

Image
 안녕하세요! 오늘은 Day 27입니다! 오늘은 Deep learning specialization 중 3번째 course를 공부했다 Improving Deep Neural Networks: Hyperparameter Tuning, Regularization and Optimization 우선, 어제 시작했던 부분을 끝냈다 단순 딥러닝 모델을 'from scratch" 만들어 봤다 과정을 간단하게 설명하자면  1. initialize parameters  2. do forward prop, compute cost, do backward prop, update params 실제로 머신러닝 과학자가 이렇게 하는지 잘 모르겠는데 신경망 모델을 더 깊게 이해하려고 도움이 되었던 것 같다 자, 이제 ~ Improving Deep Neural Networks: Hyperparameter Tuning, Regularization and Optimization의 내용을 요약해 보도록 하겠습니다! Basic recipe for machine learning 얻었다 Model has high bias ? > Yes > Bigger network, train longer, look for another model architecture       \/     No        \/   Model has high variance ? > Yes > More data, regularization, look for another model arch      \/     No     \/     Done :)  이건 간단한 model building recipe라고 한다 Bias와 variance 극복하기 위해 여러가지 방법이 있는데 normalize 하나이다. 정규화 전 및 정규화 후. 정규화하면 grad descent이 minimum을 더 쉽게 찾을 수 있게 된다 Bias와 variance 극복하기 위해 W, b 파라미터 initialization