수업 정리(개인용) (55) 썸네일형 리스트형 CS231n 2017 Lecture 8 : Deep Learning Software GPU가 강점을 보이는 연산은 행렬 곱이다. 행렬 곱은 벡터 내적을 여러 번 하는 것이기 때문에 병렬로 처리하면 엄청나게 빠르다. NVIDIA GPU를 쓰자. GPU에 최적화된 프로그래밍을 위해 NVIDIA에서 cuda라는 언어를 제공, 하지만 고수준 API들을 쓰지 직접 cuda를 쓸 일은 없다. CPU와 GPU간의 엄청난 성능 차이를 확인할 수 있고, cuda를 직접 짠 것과 cuDNN을 사용한 것의 차이도 확인할 수 있다. 거의 3배 가량의 차이가 나므로 그냥 cuDNN을 쓰자. 사실은 우리는 tensorflow나 pytorch를 쓸 것이기 때문에 그 조차도 할 필요가 없을 것이다. Training 시에 bottleneck을 막는 방법으로 1. 데이터를 모두 RAM에 올리기 2. SSD 쓰기 3. .. 인공지능을 위한 선형대수(주재걸 교수님) Intro, 선형대수의 기초, 선형방정식과 선형시스템 Check - Inner product와 outer product란? - A,B가 행렬일 때, AB=BA인가? - 행렬 곱의 4가지 성질은? - Identity matrix는 무엇인가? - Inverse matrix는 무엇인가? - 역행렬이 존재하는 조건은? - 역행렬을 이용, Ax=b를 푸는 방법은? - 역행렬이 있다면 해가 유일한가? 이유는? - Determinant란? - 역행렬이 없을 때 해의 개수는? - A가 m x n 행렬일 때, mn일 때 해의 개수는 어떻게 되는가? - 머신러닝에서는 어떻게 해결하는가? 자주 쓰이는 표현들을 한번 정리해 주셨다. 행렬 곱의 다양한 성질들이다. 행렬을 이용한 linear equation의 표현이다. Linear system은 linear equation의 집합.. 확률 및 통계(한양대 이상화교수님) lec1 : 조건부확률과 Bayes 정리 Check - Sample space란? - P(A)의 의미는? - 조건부 확률이란? - Total probability란? - Bayesian Theorem이란? 언제 유용한가? - Independent의 정의는? 언제 유용한가? - Combined experiment란? Sample space와 event의 정의는 위와 같다. P(A)를 A가 일어날 확률이라고 생각했었는데, 좀 더 엄밀한 정의는 위와 같다. 조건부 확률이란 새롭게 형성된 sample space 안에서의 확률이다. 전제 조건을 가정했을 때의 확률이라고 생각하면 편하다. P(A)는 P(A l S)에서 전체 sample space인 S를 생략한 것으로 볼 수 있다. Total probability는 조건부 확률에 관한 수식으로 위와 같이 .. CS231n 2017 Lecture 7 : Training Neural Networks II 오랜만에 본다. 저번 강의에서 다룬 normalization에 대한 첨언이다. 같은 classifier라도 data의 value가 크면, weight가 약간만 바뀌어도 classification 결과가 바뀔 수 있다. Normalization을 통해 model을 좀 덜 sensitive 하게 만들 수 있다. 오늘 배울 것들 SGD의 단점1 : Gradient에만 의존하기 때문에 상대적으로 완만한 방향으로는 진전이 느리고 경사가 급한 방향으로 많이 이동해서 지그재그로 경사면을 내려간다. 위 그림을 가로 축 w1, 세로 축 w2라고 생각하면, w1의 gradient가 w2의 gradient에 비해 많이 낮다. 이럴 때 condition number가 높다고 한다. 차원이 늘어나면 가장 낮은 gradient와.. CS231n 2017 Lecture 6 : Training Neural Networks I 이번 강의의 overview이다. 다양한 non-linear function에 대해 알아볼 것이다. Sigmoid는 위와 같이 생겼다. 3가지 문제점이 있는데, 1. 중심에서 멀어지면 gradient가 죽는다. 2. Output이 0~1이므로 zero-centered 되어 있지 않다. 3. exp() 함수가 비용이 크다. 1,3은 직관적으로 이해가 가는 부분이다. 그런데 zero-centered는 왜 문제가 되는걸까? 저기서 w1,w2,...wn의 local gradient가 x1,x2...xn이다. 그런데 x가 이전 layer의 sigmoid를 거쳐서 나온 값이라고 하면 x는 모두 양수이다. L = w1x1 + w2x2 ... 라고 하자. Chain rule을 적용할 때 L의 gradient와 w의 l.. CS231N Spring 2020 Assignment1 : Features yun905.tistory.com/5?category=878116 CS231n 2017 Lecture 3 : Loss Functions and Optimization Lecture 2에서 배운 내용의 review로 시작하는 Justin. Linear classifier는 W를 가지고 있었고, 각 W 값은 해당 픽셀이 얼마나 score에 영향을 끼칠지 결정한다. 이번 시간에 배울 loss function과 optimizatio.. yun905.tistory.com Lecture 3에서도 다루었듯이 image의 raw pixels를 바로 linear classifier에 넣는 것은 좋은 생각은 아니었다. 이런 feature extraction 방법을 통해 얻은 feature를 neural network에 넣.. CS231N Spring 2020 Assignment1 : Two Layer Net 간단한 값들을 가지고 우선 모델의 순전파와 역전파를 구현할 것이다. 이 부분을 implement 하면 된다. 순전파야 단순히 output을 다음 layer의 input으로 주는 구조이므로 어려울 것이 없고, 역전파도 softmax 과제를 잘 했다면 비슷한 방식으로 쉽게 할 수 있다. yun905.tistory.com/11 를 참고하자. 다만 한 가지 다른 부분은 이전 과제에서는 bias trick을 사용해 W에 bias를 끼워넣어서 따로 역전파를 계산해 주지 않아도 되었는데, 여기서는 b가 따로 떨어져 있으므로 계산을 해주어야 한다. Bias는 각 class별로 1개씩 존재하므로 shape이 score(L2).shape[1]과 같을 것이다. 이런 하나의 bias가 X.shape[0]개의 data에 대해 .. CS231N Spring 2020 Assignment1 : Softmax CIFAR-10 데이터를 이렇게 분할해서 사용할 것이다. softmax.py에 들어가서 softmax_loss_nave를 구현한다. Inline Q1. W가 처음에 0에 가까운 값들로 초기화 되기 때문에, exp 연산을 거치면 score의 모든 값이 1이 되어 버린다. 따라서 softmax를 거친 값은 1/cls_num이고 CIFAR-10의 class 수는 10개 이므로 loss는 -log(1/10)이 된다. Softmax의 computational graph는 위와 같고, 이 그래프를 차분히 해석하면 gradient를 구할 수 있다. 코드는 위와 같다. Regularization을 잊지 말자. Numerical gradient와 비교해서 잘 짰는지 확인하자. Naive 버전을 잘 짰다면 vectoriz.. 이전 1 ··· 3 4 5 6 7 다음