- 입력 이미지의 해상도가 이라면, 하이퍼파라미터의 개수는 다음과 같다.
- 개의 hidden unit 존재한다고 가정
- 의 차원 : (12288, m)
- 첫번째 레이어에서 의 차원 : (1000, 12288)
- Fully Connected 이므로 개수는 1000 x 12228 = 12M
- 만약 입력 이미지의 해상도가 이라면, 하이퍼 파라미터가의 개수는 다음과 같다.
- 1000 개의 hidden unit 존재한다고 가정
- 의 차원 : (3M, m)
- 첫번째 레이어에서 W 의 차원 : (1000, 3M) 1000 x 3M = 3B
- weight 가 너무 많다는 문제점이 있다.



- Input image size 𝑛×𝑛: 6×6
- Filter size 𝑓×𝑓: 3×3
- Padding size 𝑝: 𝑝 = 1
- Output image size : 암기 권장
- 입력사이즈와 출력사이즈를 같게 만들기 :
- Input image size 𝑛×𝑛: 7×7
- Filter size 𝑓×𝑓: 3×3
- Padding size 𝑝: 𝑝 = 0
- Stride : 𝑠 = 2 #위 아래 2칸을 이동하여 다음 컨볼루션 진행
- Output image size : -> 나보다 작은 정수 중에 큰것


필터 두개를 사용하고, 컨볼루션 연산이 끝나면 그 연산 결과가 필터당 하나씩 나온다.
- // linear transformation Conv
- // not linear ReLU
NN 의 하나의 layer 에 각각 3 x 3 x 3 인 필터가 10개가 있다면

Notaions
- 컨볼루션 필터
- 필터 사이즈 :
- 패딩 :
- Stride :
- 출력의 채널 개수 : 컨볼루션 필터의 개수와 동일
- 입력 이미지 (가로 : Horizontal, 세로 : width, 채널 : Channel)
:- 필터 사이즈 :
- Activation
- Weights :
- Bias :
- 출력 (가로 세로 채널) :
컨볼루션 레이어를 사용하는 방법은 칸볼루션 필터를 반복해서 사용하는 것이다.










이 컨볼루션을 쓰는 경우도 있다
1 x 1 컨볼루션을 쓰면 일단 컨볼루션의 채널 수는 입력과 수가 같다고 했는데, 채널 축으로 내적을 구하는 것이 된다.
이게 왜 필요하지 생각하지 말고 저런 효과가 있다.
채널 접근으로 컨볼루션을 한다.


Regularization 에서 모델을 보면 아웃풋 레이어에 시그모이드를 출력을 한 것이 있었다.
그 이전에 파이토치 튜토리얼 했을때 클래스로 짜여진 모델을 하나 보여준적이 있다 -> foward 마지막 아웃풋은 시그모이드가 아니라 리니어 아웃풋을 그대로 냈었음
시그모이드가 붙을때가 있고 안붙을때가 있는데
파이토치는 그 두가지를 모두 제공한다.
우리 모델의 마지막 출력이 시그모이드 출력값이다 하면, 그 출력값을 가지고 크로스 엔트로피를 구해서 로스를 구하는데 그때 이 함수를 쓴다
우리 모델의 출력이 시그모이드의 출력이 아닌 출력을 받아서 크로스 엔트로피의 입력으로 줄수있는 방법
즉, softmax 를 내가 하지 않고 리니어 출력(logit)만 하고 그 logit 의 softmax 를 loss 함수에 맡길때 다음 사용