CNN
선형레이어 쌓고 그사이에 비선형 레이어를 추가해서 했다
최종 클래스 스코어
컨볼루션 뉴럴 레이어
각히듣레이어 학습시켜야함 BNN
2012 NN광풍 nn음성인식 좋은성능
뉴런들이 계층구조
심플셀 ,컴플렉스 셀(빛의 방향, 끝점)
컴플렉스 셀 = 풀링 강력하다
alex net 논문 인용수가 엄청나다 75000 인용수
알렉스넥의 이미지넷은 좋은 성능을 나타낸다
디텍션도 잘 된다. 이미지의 방싱
세그멘테이션은 박스만 치는게 아니고 나무사람 구분도 된다.
gpu 자율주행으로 conv에 학습
conv넷 다양한 활용예
비디오는 이미지정보+시간정보
사람포즈잡아내는 것도 할수 있다 - pose reconation
콘브넷
의학영상진단
은하분류
표지판 분류
캐글 챌린지
어디가 길어디가 건물
분류나 박싱에서 더 나아가서
이미지를 글자설명으로 할수도 있다.
그리ㅇ고 예술작품도 만들수있다. 약간 약빠고 만든것같다
원본이미지를 특정화풍으로 바꿔줄수도 있다고 한다 반고흐
이미지 캡셔닝 -
cnn 세그멘테이션
+
rnn 텍스트 제너레이션
이미지 그림으로 바꾸는것
에폭을 많이 돌리면 오버피팅이나는데
GAN은 에폭으로 오버피팅이 나지않고 성능이 좋아진다.
GAN 위조지폐범과 경찰
---
cnn 어떻게 동작하는지
그전에 풀리커넥티드 레이어 fully connected layer 을 배웠다. =dense layer
32*32*3 이미지를 3072*1로 한줄로 쭉 뽑아서 사용했다.
완전히 연결된레이어이다.
여기서 항는일은 어떤벡터를 가지고 연산을하는것이다
예를들어 32*32*3이미지가있으면
쭉 펴서 한줄로 만들었다.
그래서 결과는 액티베이션을 얻었다.
10개의행은 10개의 가중치 이다.
그러면 어떤 한 값을 얻는데 그게 뉴런하나다.
CONV와 FC의 차이점
컨브는 작은 필터자기고 이미지슬라이딩하면서 내적을 수행한다.
필터는 아주작은 부분만 취할수있다. 하지만 깊이는 전체깊이를 취한다
이 필터로 전체 이미지 내적을 시킨다.
필터의 각W와 이에 해당하는 이미지의 셀을 곱해준다.
553이라는건 그만큼 곱첸셩산을 하는것이다.
물론 바이어스도 들어간다
단지 행벡터를 만들어주려고 트렌스포스를 하는것이다
W의미는 553인가 751인가
553입력값 x가
필터를 이미지에 겹쳐놓고 해당하는 값을 곱해주는것인데
실제로는 백터를 펼쳐놓고 내적을 구하는것입니다.
컨볼루션 슬라이딩 방법
이미지 좌상단에서부터 시작한다.
필터의 모든요소를 가지고 내적하면 하나의 값만 나온다.
아웃액티베이션 맵에 갔다논다
입력은 32*32*3, 출력 액티베이트 맵은 28*28 사이즈이다.
32-(5-1)=28
슬라이딩 방법은 선택할 수 있다.
컨브는 여러개 필터를 사용한다.
파랑필터 초록필터
파랑필터 -액티베이트맵
초록필터 - 액티베이트 맵
55필터 6개가 있으면 액티베이트맵 6개를 얻는것이다.
이 필터사이에 렐루같은 필터를 넣어준다.
그래서 나온출력을 다음 필터 입력에 넣어준다.
depths =6 액티베이션맵 6개
sigmoid, relu, softmax =활성화 함수다
relu가 가장 대중적이다 표준적이다.
레이어는 여러개필터가있다.
레이어를거칠떄마나 엑티베이트맵이 나온다.
필터의 depth를 늘리는데 어떤 직관을 가져야 하는지
3->6이 있는데
어떤것이 더 좋은지 찾아야 한다
질문1
전체이미지를 슬라이딩하면서 필터링을 하는데 이미지 가장자리는 필터링이 털되지 않나
이는 엑스 제로 패딩으로 해결한다.
---
단순한특징을 뽑고 또 쌓아서 복잡한 특징을 뽑는다.
단순한 특징, 에를들어 엣지나 색에관한 특징을 먼저 뽑는다.
강제로계층구조를 설계하고 역전파로 학습한 것이다.
시각화란 무엇인가
그리드의 요소가 하나ㄴ의 뉴런 필터라고 보면된다.
이미지가 뉴런과 비슷하게 생겼음녀 출력값이 큰값을 가지게 된다.
시각화는 백프로파게이션으로 할 수있다.
여기 그리드으 ㅣ각요소는 각 뉴런의 활성화시키는데 결국 뉴런이 어떻게생겼나이다.
55필터를 시각화 한것을 볼 수있다.
이미지간의 필터간 액티맵을 볼수 있다.
엣지를 찾을때 필터와 비슷한 값이면 값이 커지게 된다.
이미지중 어느위치에서 필터값이 커지는지 볼 수 있다.
correlation식과 conv식은 비슷하다.
conv의 뒤집히
기본적으로 필터로 내적을 하는 것이다.
입력이미지는 여러 레이어를 통과한다.
렐루를 가장 많이 사용한다.
cnn끝단에는 fc레이어가 있다.
최종스코어 계산을 위해
---
스펜탈 디멘션
32*32*3 -5*5*3- 28*28*1
스트라이드1
7*7(입력), 3*3 (필터) 왼쪽상단부터 한칸씩 내적하면 출력 5*5가 나온다
스트라이드2
왼쪽상단부터 2칸씩 움직인다 출력 =3*3
스트라이드3
왼쪽상단부터 3칸씩 움직이면 오른쪽 모서리 부분이 남는다
남은 부분은 어떻게 처리할 것인가
이렇게 하면안된다
이러면 데이터가 날라간다
그래서 제로패딩을 해준다.
스트라이드 계산식
(N-F)/stride+1
stride 1 -> (7-3)/1+1 =5
제로패딩을 할때는 모서리부분의 특징을 추출할 떄이다.
제로패딩을하면 n=9 가되서 출력은 7*7이 된다.
(9-3)
7*7을 연산하면 3*3으로 작아지는데 이를 7*7 유지하기 위해 제로패딩을 쓴다.
보통
제로패딩하는이유 입력 출력 값 모양을 같게 하기; 위해
3*3 =스트라이드1
5*5 스트라이드2
7*7 스트라이드3
제로패딩을 안하면 이미지데이터를 잃는것이고 줄어드는 것인데
이러는이유는 코너에 있는 값을 계산하지 못하기 때문이다.
이 레이어의 파라미터 구하는 법
5*5*3+1 =76 (바이어스=1)
바이어스는 wx+b 에서 b 인데 계산하기 편하게 하기 위해 1을 쓴다.
76*10 =760
몇개의 필터쓸건지, 필터크기 몇인지 수식을 이용해 출력크기가 몇인지 알수있다.
필터갯수 보통 2의 제곱수로 한다.
필터가5*5이면 뉴런의 recept feild가 이 영역이라고 이해하면 된다.
각기 필터들은 같은지역을 돌더라도 다른 특징을 뽑아낸다.
cnn엔 conv레이어와 pooling 레이어가 있다.
풀링에이가 하는일은 다운 셈플링하는것이다
공간적으로 줄여준다
중요한점은 뎁스에는 아무직도 하지않는다.
뎁스에 아무영향이 없다
풀링에도 필터크기를 정할수 있다
콘브처럼 슬라이딩하면서 연산한다
콘브같은 내적이아니라 필터값중에 가장 큰 수를 고른다.
conv는 같은 region(위치)을 보는게 필터 갯수만큼 여러 방면에서 보는 것이다.
fc는 전체 이미지를 보는게 한번에 본다.
fc는 이미지 전체를 넣기 떄문에 이미지특징 추출에는 비효율적이다.
5-73
conv로 특징을 추출하고 fc로 한번에 연산하는 이유 : conv로 나온 특징 값을 라벨에 대해 분류를 하기 위해 fc를 마지막에 쓴다
알렉스넷에 fc가 2개인 이유는 gpu가 2개이기 때문이다.
'모두의 연구소 AIFFEL 교육' 카테고리의 다른 글
원 핫 인코딩 (0) | 2021.01.29 |
---|---|
CS231n 4강 후기 (0) | 2021.01.29 |
github에 파일 올리기 (0) | 2021.01.19 |
우분투 쉘 창에서 aiffel 커널 연결하기와 커널법 연결 안되는 경우 해결법 (0) | 2021.01.15 |
1월 11일 cs231 일기 (0) | 2021.01.11 |