본문 바로가기

코딩 독학/CS231n12

[cs231n] 4강. Backpropagation and Neural network ✔ 본 포스팅은 20/10/10 ~ 20/12/26 동안 진행하는 가짜연구소 딥러닝기초이론스터디를 통해 학습한 내용입니다. ✔ 본 포스팅은 스탠포드 대학의 cs231n 강의를 정리한 내용입니다. 지난 강의 복습 4강에서는 Backpropagation과 Neural network에 대해서 배운다. 지난 강의를 복습해보자면, 1. input data를 넣어 예측할 각 클래스의 score를 f(x; W) = Wx 라는 함수 (가중합이라고도 함)로 구한다. 2. 이 값을 SVM loss를 구하는식에 넣어 hinge loss를 구한다. 3. train data에 overfitting되는 것을 방지하기 위해 regularization 함수를 더해 최종 Loss를 구한다. 4. 이 Loss가 최소가 되는 parame.. 2020. 10. 31.
[cs231n] 과제1. KNN classifiers KNN classifiers two_loops , one_loops , no_loops distances 정답코드는 많은데, X_train과 X_test 간의 distance를 구할 때 각각의 행렬의 배열이 어떻게 변하는지 초보인 나로서는 이해가 잘 가지 않았다. 쉬운 배열을 임의로 만들어서 정답코드의 distance를 구하는공식이 X_train과 X_test간의 원소들간의 계산에 어떻게 적용되는지 눈으로 확인해보았다. two_loops distances >>실제코드 >>쉽게 이해해보자 1. 먼저 가상의 train, test 샘플을 만든다. 실제 CIFAR10의 train 샘플은 (50000, 32, 32, 3) 차원으로 [50000장의 사진x (32x32 픽셀) x3개의 RGB채널] 로 이루어져있고, .. 2020. 10. 29.
[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강. L1 & L2 distance 2강 내용 중 Nearest Neighbor와 K-Nearest Neighbor 모델에서 L1, L2 distance 에 대한 내용이 나온다. 테스트데이터와 학습데이터 사이의 오차를 구하는 함수인데, 상황에 따라서 서로 다른 distance공식을 사용한다고 했다. 이에 대해 이해가 잘 되지 않아서 추가로 공부해보았다. 1. 적합한 알고리즘을 위한 손실함수 정규화 위의 그래프를 보면 학습을 반복할 때, training data에 대한 loss는 감소하지만, 오히려 과적합되어 validation data에서는 loss가 증가하는 모습을 보인다. 이 경우 단 하나의 목표는 손실을 최소하는 것이기 때문에, 모델이 얼마나 복잡해지는가는 상관하지 않는다. 아래의 식은 이를 나타내는 경험적위험최소화 의 식이다. 데이.. 2020. 10. 18.
[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.