인공지능/공부

딥러닝 개론 6강 - 합성곱 신경망 CNN 1

이게될까 2024. 4. 16. 22:22
728x90
728x90

2차원 공간상의 위치정보를 고려해야하는 data에 대해서 효과적으로 사용된다.

 

단순한 계산 과정을 보여준다.

서브 샘플링 - 데이터 수를 줄인다.

풀링은 모든 layer에 사용하는 것은 아니고 필요할 때 적절하게 사용한다. 패딩을 할 순 있지만 안 할뿐

배치 정규화가 생각보다 시간 많이 사용하니까 적당히 쓰기

겅중 겅중 뛰어 다니는 것

입 출력 사이즈 조절 및 가장 자리 feature의 인식률 Up

입력 사이즈가 필터를 거칠수록 작아진다 -> 패딩으로 막는다.

사이즈가 유지된다.

수용 영역이 넓어진다. -> 깊이의 한계가 생긴다.

weight 수가 확 줄었다. == 학습시켜야 할 파라미터가 줄었다.
But filter 수가 늘면 파라미터가 는다.

위치가 어디있든 feature는 똑같이 추출된다.

1. 파라미터가 FNN보단 적으나 여전히 많고, 필터 수가 많을수록 더 커진다.

2. 파라미터를 지속적으로 확인하면서 살아있는지 확인한다.

3. 공간과 채널을 한꺼번에 연산한다.
공간과 채널이 섞인다. 분리할 수 있다 - attention

다 연결하므로 특성이 뽑히긴 뽑힌다. 불필요하게 깊게, 파라미터가 많아질 뿐이다.

layer가 깊어질수록 점점 넓은 영역을 본다.

bias는 하나만 있고 전부 다 더해준다.

수용 영역을 넓힌다 -> 필터 사이즈를 키운다. or 깊게 쌓는다.
여기서는 간격을 띄워서 넓은 영역을 커버한다. 스캔이 안되는 영역은 이동하면서 확인한다.
깊게 쌓지 않아도 수용 영역을 넓히는 방식이다. 또한 파라미터를 많이 사용하지 않아도 깊게 볼 수 있는 방식이다.

한번에 바라보는 영역이 넓어진다.
해상도를 낮춰서 넓게 본다고 생각하면 된다.

단점 : 필터 사이즈가 커지면 출력이 작아진다 -> 깊게 쌓지 못한다.

여러가지 특성을 동시에 뽑기 위해 사용한다. 
독립적인 특성을 보여줄지 알 수 없기 때문에 조절하는데 사용된다.

채널을 그룹으로 나눠 필터를 각각 사용한다. 
두 그룹이 완벽하게 독립이며 이렇게 해도 된다!
상관 관계가 있거나 독립이 아니라면 셔플 그룹 convolution을 해야 된다.

개별적으로 계산 후에 쌓는다.

모든 데이터에 다 적용 가능하고 큰 굴곡, 세부 디테일을 나눠서 볼 수 있다.

채널까지 조절한다.

채널별로 correlation(convolution 연산)을 비교하여 높게 나오면 차원을 줄이면 된다.

그룹간 정보를 교환할 필요가 있는 경우

가로방향, 세로방향 나눠서 진행한다. -> 연산량 감소, 속도 증가

줄어든 데이터 크기를 다시 늘린다.

입력의 주요 정보만 뽑아서 만드는 것이다. - Segmentation
입력과 출력의 사이즈가 같다.

풀링의 반대이다.

특정 위치로 보내며 사이즈를 키운다.

그냥 똑같이 채운다. 

위치를 기억하고 있기 때문에 가장 높았던 위치에 넣는다. (backPropagation 때 위치정보를 활용하기 때문에 저장되어있다.)

파란색 - 입력, 초록색 - 출력
입력을 약간 펼치고, 패딩을 하여 기존의 Convolution과 동일하게 진행한다.

필터 곱 연산을 편하게 볼 수 있다.

행렬을 뒤집어서 업 샘플링된 출력이 나온다.

스트라이드와 필터 크기 조정 필요

겹쳐도 그냥 더하지 말고 평균을 취하거나 하나를 버려야 한다.

아까보다 훨씬 이해하기가 편하네요

풀링이 무조건 정사각형으로 나와야 되는건 아니다. 여기선 직사각형이 나왔다.

맥스 위치만 살려서 보내고 나머지는 건들지 않는다.

Edge가 공유 된다. == 같은 변수 (Edge)에 대해 업데이트가 여러번 일어난다. (여기선 4번)

 

728x90