AI Study(8)
-
[CS231n/08강] Deep Learning Software
📌 CPU vs GPU ▪️ 둘 다 임의의 명령어를 수행할 수 있는 범용 컴퓨팅 머신이다. ▪️ 그렇지만 차이점이 있으며 이는 아래와 같이 정리해볼 수 있다. ▪️ GPU에는 RAM이 내장되어 있는데, RAM과 GPU간 통신에는 보틀넥이 존재한다. ▪️ CPU는 다양한 일처리가 가능한 반면, GPU는 병렬처리 등에 더 특화되어 있다. (Matrix Multiplication, Convolution) ▪️ GPU에서 직접 실행되는 코드를 작성할 수 있다. 메모리 관리, cache miss 등등을 고려하여서 코드를 작성하면 효율적으로 잘 활용할 수 있다. ▪️ 딥러닝을 위한 라이브러리도 많이 존재하며, 딥러닝을 위한 cuda 코드를 직접 작성하지 않고 다른 사람이 작성해 놓은 코드를 불러와서 사용할 수 있다..
2023.05.07 -
[CS231n/07강] Training Neural Networks 2
📌 06강 Review ▪️ 활성화 함수: gradient vanish 문제 ( Sigmoid, tanh), 요새는 가장 잘 동작하는 ReLU 함수를 사용한다. ▪️ 가중치 초기화: 너무 작게 초기화를 하면 점점 0에 수렴함, 가중치가 너무 큰 값으로 가게 된다면 explode 되는 문제 발생하는데, 둘 다 학습 제대로 이루어질 수 없음. 네트워크가 깊어질수록 더 많은 가중치를 곱하게 되므로 이는 네트워크가 깊어질수록 초기화를 잘 해주어야 함. ▪️ 데이터 전처리: zero-center, unit variance (normalization) ➡️ 학습이 쉬워지고 loss가 가중치 변화에 덜 민감해진다, 최적화가 쉽고 이는 학습이 잘 되게 된다. ▪️ Batch normalization(BN): activ..
2023.05.07 -
[CS231n/06강] Training Neural Networks 1
📌 복습 🔸 Mini-batch SGD(Stochastic Gradient Descent) Loop: 1. Sample a batch of data 2. Forward prop it through the graph (network), get loss 3. Backprop to calculate the gradients 4. Update the parameters using the gradient ▪️ 데이터 일부만 가지고 진행 📌 Activation Functions 🔸 Activation Functions ▪️ 데이터가 입력으로 들어오면(x) 가중치(W)를 곱한다. ▪️ 이후 활성 함수인 비선형 연산을 거치게 된다. 🔸 Activation Functions 예시 🔸 Sigmoid ▪️ 받은 입력을 [0..
2023.04.02 -
[CS231n/#05] Convolutional Neural Networks
📌 CNN History 🔸 A bit of history...(NN이 잘 쓰이게 되기까지) ▪️ 퍼셉트론을 구현한 최초의 기계, 출력 값이 0 또는 1 ▪️ 가중치 W를 update하는 규칙이 있으며 이는 backprop과 유사함 ▪️ backpropagation 기술이 나오기 이전부터 시작되었음 ▪️ 1960s : linear layer를 쌓기 시작함 (최초의 multi layer, backprop 이전, train idea도 아직 없음) ▪️ 1986 : 최초 backpropagation 소개됨 , 최초로 network를 학습시키는 것에 관한 개념이 정립되기 시작한다. ▪️ 그러나 NN을 더 크게 만들지 못하고, 새로운 이론도 나오지 않았음 ▪️ 널리 사용 x 이다가 2000년대가 되어서 다시 활발..
2023.03.30 -
[CS231n/#04] Introduction to Neural Networks
📌 Backpropagation 🔸 backpropagation (simple example) ▪️ 역전파는 recursive application of the chain rule 이다. ▪️ f를 각각 x, y, z로 편미분한 것을 구한다. 이 때, z로 편미분 한 것은 q와 같으므로 3이된다. ▪️ q의 위치에는 f를 q로 편미분한 값을 구하는데, 이는 z와 같으므로 -4가 된다. ▪️ 직접, direct로 연결되어 있는 것은 forward passing에서도 바로 구할 수 있다. (이런 것을 local gradient라고 한다.) ▪️ x, y로 편미분한 것은 바로(direct) 구할 수 없다. 이런 경우 chain rule을 적용한다. ▪️ f를 y로 편미분 한 것은 df/dy 인데 이는 chai..
2023.03.26 -
[CS231n/#03] Loss Functions and Optimization
🖇 지난 시간 복습 : Linear Classifier ▪️ 최종 score가 높을수록 classifier가 이미지에 대해서 그 클래스에 해당할 가능성이 높다고 생각한다. ▪️ matrix W: 각 픽셀이 그 클래스에 얼마나 영향을 주는지 알려주는 역할을 한다. 📌 W를 선택하는 방법 🔸 Loss Function ▪️ loss 함수를 이용하여 가장 적합한 W(가중치)를 선택할 수 있다. ▪️ 가중치가 해당 이미지에 해당하는 label에서 가장 높아야 잘 분류를 할 수 있다. ▪️ 슬라이드 예제의 경우 자동차의 경우만 가중치 설정이 잘 되어있고, 고양이나 개구리는 그렇지 않다. ▪️ 위 슬라이드에서 x는 이미지의 픽셀 값들이고 y는 label (실제 값), 그리고 f(x, W)에서 나온 output은 예..
2023.03.26