JH 개발자의 성장일지

이준석 교수님 - Deep Learning, Machine Learning 강의 정리 (3) / 24.10.01 본문

Deep Learning

이준석 교수님 - Deep Learning, Machine Learning 강의 정리 (3) / 24.10.01

JHDeveloper 2024. 10. 11. 22:57

영상 강의 - [딥러닝] Lecture 3. Neural Networks & Backpropagation (youtube.com)

 

 

여태까지 배운 내용 : Nearest Neighbor < Linear Classifier

 

Linear Classifier의 단점

: 클래스마다 템플릿이 하나 (가중치가 하나) 이기 때문에 다양성에 대한 판단을 못함. (실제 데이터들은 비선형 구조로 분포함 → 근데 이거를 선형 구조로 파악하려는 건 큰 단점)

방법 1) 수학적인 규칙을 만들어 데이터를 선형 구조로 바꿈 (보통 차원을 늘려줌)

→ 차원의 저주 문제 때문에 방법 1)은 비선호

과거 : 이미지 데이터에 대해서 특징(모양, 색깔 등을 2차 데이터)을 추출해 벡터로 만듬 → y로 매칭 시켜주는 과정 학습

⇒ 차원의 저주도 풀림. but 두 과정이 분리되어 있음. 특징 추출은 한 번만 하면되고, 라벨링만 학습하면 됨. & 모든 특징이 똑같이 중요한 건 아님…

 

?? 두 과정이 분리시키지 말고 합치는 건?? 핵심이 되는 feature를 인간이 찾지 말고 딥러닝에서 알아서 찾아서 하는 건?

→ 사람이 개입하지 않아도 됨. 자동으로 이루어짐. but 많은 데이터가 필요하고 모델 규모도 커지고, 컴퓨터도 더 좋은 성능을 가지고 있어야 함. 사람이 가진 지식 최대한 활용해서 하기~

 

 

단일 퍼셉트론

들어온 데이터에 대한 연산을 수행 후 특정 값을 넘으면 다음 뉴런으로 전달, 아니면 전달하지 않음

 

 

다층 퍼셉트론

다음 단계로 전달된 데이터는 또 activation function이 적용되어 계산이 되어 다음 뉴런으로 전달됨. → input과 output의 관계가 직접적으로 연관된 게 아닌 여러 과정을 거쳐서 표현 됨.

(activation function의 예시 : sigmoid, tanh, ReLU)

 

 

다층 퍼셉트론을 적용한다면 파라미터 업데이트 하는 방법은?

이전에 linear classifier에서 적용했던 것처럼 옵디마이저 함수를 적용한다면…

손실값 (loss)를 각 층에서의 가중치로 미분한 값이 필요함

계산 과정)

 

 

역전파 연산

: chain rule로 인해 맨 뒤에서부터 계산하면서 각 기울기에 대한 손실함수에서의 미분 값

*파이토치(Pytorch), 텐서플로우(Tensorflow)가 저런 복잡한 계산들 다 해줄거임