본문 바로가기

인공신경망5

[cs231n] 7강. Training Neural Networks II ✔ 본 포스팅은 20/10/10 ~ 20/12/26 동안 진행하는 가짜연구소 딥러닝기초이론스터디를 통해 학습한 내용입니다. ✔ 본 포스팅은 스탠포드 대학의 cs231n 강의를 정리한 내용입니다. 이번 강의에서는 NN을 훈련시키는 나머지 방법들에 대해서 공부한다. 지난 시간에는 가중치초기화, 학습률설정, 배치정규화 등에 대하여 배웠고, 이번 강에서는 NN을 더 최적화시키기 위해 1. Gradient update의 방법들 2. Regularization방법들 을 중점적으로 공부한다. Optimization 방법 NN의 loss가 최저인 지점을 찾아가기 위해 backpropagation을 거듭하게 되는데 가장 지름길로 빠르게 가기 위한 gradient update에는 여러 방법이 있다. 하나씩 살펴보자! 1... 2020. 11. 21.
[cs231n] 3강. Loss function, optimization ✔ 본 포스팅은 20/10/10 ~ 20/12/26 동안 진행하는 가짜연구소 딥러닝기초이론스터디를 통해 학습한 내용입니다. ✔ 본 포스팅은 스탠포드 대학의 cs231n 강의를 정리한 내용입니다. ✔ 아직 이해가 잘 안 되는 부분이 많아서 계속 수정하겠습니다. 😅 지난시간 data-driven approach 로 KNN classifier에 대해 보았고, CIFAR-10 데이터셋으로 실습을 진행하였다. (아직도 다 못함 ㅠㅠ) KNN classifier는 test와 train 이미지간 픽셀값차이를 통해 L2 distance를 구해 거리가 최소인 k개의 train 그리고 train/test data로 나눈 뒤, 최적 hyperparameter를 구하기 위해 검증할때 train data를 K개의 fold로 나.. 2020. 10. 23.
[CS231n] 2강. Image classification 이번 강의에서는 컴퓨터가 사진에서 단순한 픽셀값의 나열만을 보고 어떻게 사진을 인식하는지에 대해 다뤄볼거다. 먼저 컴퓨터가 이미지를 인식할 때는 각 픽셀값을 벡터로 쫙펼쳐서 받아들이게 된다. 하지만 단순히 모든 픽셀값을 비교하게 된다면, 사진의 구도나 빛, 카메라위치가 조금만 변해도 모든 픽셀값은 변하게 되어 사진을 전혀 구별할 수 없다. 이렇게 컴퓨터가 받는 정보인 픽셀값과 실제 이미지의 해석에 차이가 나게 되는 것을 "Semantic gap" 이라고 한다. 처음에 이를 해결하기 위해 시도한 방법은 point를 잡기 쉬운 모서리와 경계선 부위를 따라서, 특징적인 부위에서 값이 어떻게 변하는지를 규칙화시켜 이미지를 구분하는 방식이었다. 고양이라면 귀가 있을테니 둥근얼굴에서 뾰족하게 귀가 나오는 식으로 픽.. 2020. 10. 16.
[CS231n] 1강. Introduction to Convolutional Neural Networks for Visual Recognition CS231n 은 스탠포드 대학교에서 2017년에 한 강의이다. 강의 틀지마자 이 강의는 730명이 신청해서 강의실 못 들어온 학생들은 업로드되는 영상보고 공부하라는 거 보고 아 스탠포드의 멋짐이 흘러넘침을 느꼈다..... 두근두근 설레는 마음으로 강의를 정리해보겠다! 21세기 현재는 많은 디지털 기기와 컴퓨터 기술이 발전하여 엄청난 양의 시각데이터들이 생성되고 있다. 그 데이터들은 인식하고 처리하기 위해 Computer Vision에 대한 연구가 활발히 일어나고 있다. Computer Vision은 단순한 컴퓨터기술이 아니다. 이를 연구하기 위해서는 "시각"을 가진 인간이나 동물이 어떻게 물체를 인식하는지에 대한 원리를 적용할 수도 있어야 하고, 물체가 어떻게 상이 맺히는지에 대해서도 알아야 하는 등 굉.. 2020. 10. 9.
C1W2L1 ~ C1W2L4 C1W2L1. Neural network overview 여기서는 신경망이 어떤 원리로 구성되어 있고 구현되는지 살펴볼 것이다. 이때까지 공부한바에 의하면 로지스틱회귀는 특성x와 변수인 가중치 w,b를 입력하면 가중합 z를 계산하고, 이를 통해 활성값(예측값) a를 계산해 실제값y와의 오차를 구한 뒤 거꾸로 각단계의 도함수를 구해 초기 변수 w,b와 오차값의 도함수를 구해 가중치를 수정했다. 이를 기반으로 신경망을 다음과같이 쌓는다. 각 동그라미는 node라고 부르며, 하나의 node에서 각각 z와 a값을 구하는 위의 단계를 시행한다. [대괄호]는 layer고 0번째 layer는 특성값 x들을 넣은 input layer(입력층)이다. [2]layer는 output layer(출력층)이고 최종 활성값a (.. 2020. 10. 9.