이미지 분류
이미지 객체 인식
이미지 분할
= 어떠한 이미지 영상이 있을 때 이 영상이 어느 카테고리로 분류되는지에 대해 확률적으로 계산하는 방법
= 특정 대상을 객체별로 인식해 그 위치를 x, y 좌표와 높이, 너비 값으로 이뤄진 바운딩 박스를 그려서 나타내는 것을 말한다.

이미지 분류와 가장 큰 차이점
= 객체 인식의 결과에는 대상 객체의 위치에 대한 좌표 정보가 있다는 것
- 이미지 분류의 결괏값은 카테고리별 확률 값들의 벡터
- 객체 인식의 결괏값은 바운딩 박스 좌표(x,y,width)
= 이미지의 모든 픽셀을 지정된 카테고리로 분류하는 방법 (이미지에 있는 모든 픅실에 대해 예측을 수행하는 방법)
= 객체 단위는 신경 쓰지 않고 픽셀 단위로 분류하는 것
= 객체 인식 개념까지 추가해 객체별로 나누어 분류하는 것

- 선형 분류
: 데이터를 직선이나 평면 같은 선형 경계로 구분하는 분류 방법
- 선형 분류 모델의 목표
: 미래의 새로운 X값이 있을 때 예측 결과 Y를 얻는 것

- 데이터로 훈련을 계속해 가중치 값이 최적화된다면 예측값과 정답의 오차 점점 감소

은닉층(hidden layer)
- 입력의 계산 결과를 다음 계산의 입력으로 사용하는 층
- 은닉층이 더 많이 존재할수록 더 깊은 네트워크
딥러닝 훈련 과정(트레이닝, 학습)
= 훈련 데이터에 대해 가중치와 함께 계산한 모델의 결괏값이 정답과 차이가 거의 없을 때까지 모델의 가중치를 최적화 하는 과정

딥러닝 추론 과정
= 모델이 완성되면 새로운 데이터에 대한 결과를 유추하는 과정

= 가중치가 좋은지 좋지 않은지를 평가할 수 있는 방법
--> 일반적으로 평균제곱 오차(MSE)와 교차 엔트로피 오차를 사용
= 실젯값과 추정값 간의 차이를 제곱한 값의 평균을 측정
모델의 품질을 나타내는 척도
항상 양수이며 0에 가까울수록 좋다고 평가
손실값은 정답에서 멀어질수록 크게, 정답에 가까워질수록 작게

yk : 신경망의 출력
tk : 정답 라벨
k : 데이터의 차원 수 (분류하고자 하는 클래스의 개수)
= 변수의 불확실성을 나타내는 지표
** 불확실성이 증가할수록 엔트로피 값은 커짐
교차 엔트로피란 ?
= 하나의 변수가 실제 분포와 예측 분포 사이에 서로 다른 분포를 가질 경우, 두 분포들의 차이를 의미

= 딥러닝 훈련 초기에는 추정치에 대한 손실값이 큼
이러한 손실을 감소시키려면 가중치를 최적화 해야함!!
가중치 최적화 방법
- 경사하강법
- 역전파
= 손실 함수의 최솟값을 찾기 위해 반복적으로 기울기를 따라 내려가는 최적화 알고리즘
* 그래프상의 접선의 기울기가 최소화되는 지점으로 내리막길 방향을 따라가는 방법

<가중치 업데이트 수식>
(-) : 손실을 줄이기 위해 기울기가 증가하는 방향과 반대 방향
r : 업데이트 크기를 조절하는 상수. 너무 크면 최솟값을 지나쳐버리고, 너무 작으면 수렴 속도가 느려짐
∇F(a) : a에서의 기울기. 손실 함수의 변화율
* 학습률이란 ?
= 한 번의 학습으로 얼마만큼 학습해야 할지, 즉 파라미터 값들을 얼마나 갱신하느냐를 정하는 수치
= 전체 학습 데이터를 사용하지 않고 확률적으로 선택한 샘플 데이터를 이용해 학습하는 방법

but 여전히 경사 하강법으로도 손실이 남아있을 수 있음. 이러한 문제를 해결하기 위해 소개된 역전파 훈련 알고리즘!!
= 신경망의 오차를 출력층에서 입력층으로 역으로 전파해 가중치를 업데이트하는 과정
<역전파 과정>
- 순전파가 먼저 진행됨
- 순전파가 끝난 후 출력층에서 최종 결과의 손실을 계산한다
- 오차를 줄이기 위해 미분을 이용해 출력층에서 입력층 방향으로 거슬러 올라감
(가중치 파라미터들을 미세하게 업데이트하기 위해 미분의 연쇄법칙을 이용)* 미분의 연쇄법칙

<순전파>
= 입력층(왼쪽)에서 계산을 시작해 가중치 파라미터들을 출력층(오른쪽)으로 업데이트해 나가는 과정
- 경사 하강법은 순전파 알고리즘을 사용

(가중치의 미분값) = (손실값의 미분값) x (은닉층 출력의 미분값)
f : 활성화 함수
z = 순전파를 통해 계손된 손실
- x 입력값에 대한 가중치의 미분값 : (∂L / ∂x)
- y 입력값 대한 가중치의 미분값 : (∂L / ∂y )


정리(한 에포크에서의 학습)
1) 순전파로 가중치를 최적화하기 위해 업데이트하고
2) 출력값(레이어의 끝)에서 손실값을 계산한 후
3) 이 손실값을 이용해 역전파하면서 가중치를 다시 조정해주는 과정
* 손실값이 최소화되고 모델의 정확도가 높아질 때까지 반복!!
소프트맥스 함수란 ?
= 딥러닝 신경망에선 분류 결과를 얻기 위해 모든 입력의 영향을 함께 고려할 때 사용하는 함수
* 정규화 지수 함수라고도 불림
* 딥러닝의 계층에서 출력층의 활성화 함수로 가장 적합해 널리 사용

`