SlideShare a Scribd company logo
1 of 46
Download to read offline
컴퓨터 비전을 위한 합성곱 신경망 설계
Convolution Networks Arcitectures 1
- AlexNet
Michigan Online, Justin Johnson, Computer Vision, 2021. 02. 15
도정찬
▪ 오늘은 8번째 강의로 합성곱 신경망 설계에 대해서 이야기 해 봅시다. 이제 정말 합성곱 신경망에 대해 자세하게 살펴볼건데,
지난 시간에 어떻게 설계하는지 얘기하지는 못해 다들 궁금해 할것 같습니다. 지난 시간때는 합성곱 신경망을 만드는데 사용할수
있는 블록들/계층들에 대해서 얘기하고, 합성곱 신경망이 합성곱 계층, 풀링계층, ReLU같은 활성화 함수, 때로는 배치 정규화 같
은 정규화 계층으로 만든 신경망인걸 알아봤습니다.
지난 시간 : 합성곱 신경망의 구성 요소 Components of a Convolution Network
▪ 하지만 이들을 어떻게 연결시켜서 고성능의 합성곱 신경망을 만드는지에 대해서는 아직 얘길 못했었죠. 여러분들은 이 연산자
들을 마음대로 사용해도 되기는 하지만, 어떻게 합칠지, 하이퍼 파라미터를 어떻게 설정하여 합성곱 신경망의 성능이 좋아지는지
는 지는 아직 잘 모를겁니다.
지난 시간 : 합성곱 신경망의 구성 요소 Components of a Convolution Network
▪ 어떻게 해야 될지 모르는채로 있기 보다는, 최근 수년간 사람들이 사용해온 역사적인 다양한 심층 합성곱 신경망의 설계물들을
간략하게 살펴보겠습니다. 이와 관련된 좋은 주제로 이미지넷 분류 대회가 있는데, 첫째 둘째 강의에서 이미지넷은 이미지 분류
를 하기 위한 1.2백만개의 훈련 이미지를 가진 거대한 데이터셋이라고 했엇죠..
이미지넷 분류 대회 ImageNet Classification Challenge
▪ 그래서 분류 신경망으로 이미지넷의 1.2백만개의 훈련 데이터셋에 카테고리가 1000가지가 있는데 이걸 분류할수 잇어야 합니
다. 그리고 이미지넷은 매년 열리는 이미지 분류 분야의 큰 밴치마크 대회에요. 2010, 2011년에는 서로 다른 팀들이 최고의 성능
을 보이는 이미지 분류 시스템으로 우승을 했었는데, 전세계 사람들이 고성능 이미지 분류 시스템을 만들며 경쟁하고 있었습니다.
이미지넷 분류 대회 ImageNet Classification Challenge
▪ 특히 이미지 분류 분야는 최근에 합성곱 신경망을 이용한 다양한 방법으로 연구가 이뤄지면서 큰 발전이 있었는데, 매년 가장
높은 성능을 보인 방법들에 대해 얘기하면 좋을거같아요. 이미 2010, 2011년에 우승한 방법에 대해 잠깐 봤었는데, 이 방법들은
합성곱 신경망 기반 방법이 아니라, 여러 종류의 특징들을 층들로 조합하여 선형 분류기로 학습시켯었습니다.
이미지넷 분류 대회 ImageNet Classification Challenge
▪ 하지만 2012년부터 합성곱 신경망이 컴퓨터 비전 연구에서 메인 스트림 주제가 었습니다. 이 때 알랙스넷이 이미지넷에 나오
든 다른 방법들보다 훨씬 뛰어난 성능을 보여줬엇거든요.
이미지넷 분류 대회 ImageNet Classification Challenge
▪ 알렉스넷이 어떻게 생겻냐면, 알렉스넷은 심층 합성곱 신경망으로 오늘날 표준 신경망같이 여겨지고 있어요. 그런데 제가 볼때
는 알랙스넷은 깊다고 보기는힘든데 여러분들이 수업 내용을 진행하면서 볼 겁니다. 하지만 알렉스넷은 227 x 227 픽셀을 입력
으로 받고, 5개의 합성곱 계층(통과 후 맥스 풀링)과 3개의 완전 연결 신경망 계층으로 이뤄져 있습니다. 그리고 알렉스넷에서는
활성화 함수로 ReLU 함수를 사용하고 있어요.
알렉스넷 AlexNet
▪ 알렉스넷은 가장 먼저 활성화 함수로 ReLU를 사용한 합성곱 신경망중 하나에요. 그리고 알렉스넷 구조에는 다른 종류의 특징
과 처리과정이 있는데, 이제 사용되지 않은 지역 반응 정규화 계층 Local Response Normalization이라고 부르는게 있습니다. 그
래서 자세히는 다루진 않을건데, 이건 배치 정규화 같은 정규화 기법의 초기 버전으로 볼수 있는 다른 종류의 정규화에요.
알렉스넷 AlexNet
▪ 하지만 오늘날에는 알렉스넷에서 사용했던 정규화 기법 보다는 배치 정규화를 자주 사용하고 있어요. 알렉스넷의 다른 부분은
Alex Khrizevsky와 동료들이 이 신경망을 연구할 2011, 2012년 당시에 그들이 학습때 사용한 가장 좋은 GPU가 GTX580 였는데, 이 GPU는
메모리가 3GB뿐이었었어요.
알렉스넷 AlexNet
▪ 오늘날에야 코랩 같은데를 봐도 GPU 메모리가 12, 16 GB정도 되지만, 2011년에는 GPU 메모리가 충분하지 않았었죠. 이 신경망을
GPU 메모리에서 학습시키기 위해 2개의 GTX 580에다가 복잡한 방법으로 신경망을 나눠서 두 GPU 카드에 학습시키도록 구현했었습
니다. 신경망을 분할하여 GPU를 학습시키는 방법이 오늘날에도 가끔 사용되기는한데, 오늘 강의에서 볼 신경망을 물론 대부분의 신
경망에서도 잘 사용되지는 않아요.
알렉스넷 AlexNet
▪ 여기에 알렉스넷 논문에서 볼수 있는 엄청 유명한 그림인 알렉스넷 합성곱 신경망 구조가 있습니다. 여기 보면 5개의 합성곱 계층이
있는데, 2개의 GPU에서 학습할수 있게 하려고 위 아래로 2개 덩어리로 나누어 두 GPU로 배분되고 있어요. 이 그림에서 웃긴 점은 윗
부분이 잘려져 있는데, 이게 엄청 중요한 논문임임에도 실재 논문이 출판될 때의 버전이라 실제 알렉스넷 논문도 잘려져 있습니다.
알렉스넷 AlexNet
▪ 알렉스 넷을 역사적으로 짚어보자면 이 논문이 얼마나 영향력이 큰지 얘기하기 힘들지만, 인용 횟수로 본다면 이 논문의 인용 횟수
는 출판된 2012년부터 46,000회나 인용되었고, 인용 횟수 추세를 보면 여전히 크게 증가하고 있다보니 컴퓨터 과학 분야에서 가장 인
용이 많이된 논문들 하나가 되었습니다. 제 생각에는 최근모든 과학 분야에서두요.
알렉스넷 AlexNet
▪ 다른 유명한 역사적인 논문들과 비교해보자, 여기 보면 찰스 다윈의 1859년 종의 기원이 알렉스넷과 비슷한 횟수 만큼 인용되었네
요. 정보 이론 분야를 창시한 셰논의 통신의 수학적 이론은 1953년에 나와서 69,000회 인용되었구요.이번에 동시대의 가장 중요한 연
구 논문을 보자면 2012년에 힉스 입자 발견에 대한 논문이 알렉스넷과 같은 년도에 나왔는데, 우주를 이루는 입자를 발견하면서 기초
과학을 크게 진보시킨 논문이나 알렉스넷이 46,000회 이용된걸 비교하면 14,000회 밖에 인용되지 않았습니다.
알렉스넷 AlexNet
▪ 잠깐 얘기해야될게 있는데, 논문의 인용 회수가 그 논문의 영향력을 나타낸다고 할순 없고, 인용횟수만 가지고 비교하는건 올바르
진 않아요. 하지만 알렉스넷 논문에서 소개한 아키텍처가 컴퓨터 비전, 컴퓨터 과학, 아니라 인류 전체 지식에 큰 진보를 가져왔다고
해도 과언이 아니라고 할수 있겠습니다.
알렉스넷 AlexNet
▪ 그 동안 역사적인 관점에서 알렉스넷을 이야기 했는데, 그러면 알렉스넷 아키텍처 구조는 대체 어떻게 생겼을까요? 우선 알렉스넷
은 277 x 277 크기의 RGB 이미지를 입력으로 받으면서 시작합니다. 그래서 입력 채널이 3개가 있습니다. 첫 합성곱 계층은 이전 강의에
서 이야기를 했었는데, 알렉스넷의 첫 합성곱 계층은 64개의 필터와 스트라이드는 4, 패딩은 2로 위의 그림과 같이 지정되어 있습니다.
그러면 첫 합성곱 계층의 출력은 어떻게 될까요?
알렉스넷 AlexNet
▪ 합성곱 계층에서의 채널의 수는 항상 필터의 수와 같다보니 64가 됩니다. 그러면 다음 질문으로 출력 크기는 어떻게 될까요?
알렉스넷 AlexNet
▪ 이 테이플에서 폭과 높이를 한 컬럼에다가 짚어 넣고 있는데 양 방향 다 같은 값이거든요. 이 겨우 합성곱 계층에서의 출력 공간적 크
기는 56이 됩니다. 이전 강의에서 출력 크기를 계산하는 식을 봤었는데 (입력 크기 - 커널 크기 + 2 * 패딩)/스트라이드 + 1을 했었죠. 그
렇게 해서 첫 합성곱 계층의 출력으로 56을 얻었습니다. 그러면 다음 질문으로 이 출력의 특징 지도들이 몇 킬로바이트나 차지할까요?
알렉스넷 AlexNet
▪ 그러면 다음 질문으로 이 출력의 특징 지도들이 몇 킬로바이트나 차지할까요?
알렉스넷 AlexNet
▪ 이걸 암산으로 하기는 힘들텐데 출력 원소의 개수를 채널 수 C x 출력 크기 H' x 출력 크기 W'을 하면 대략 200,000개 정도 됩니다. 이
원소들을 32bit 소수점으로 저장을 시킨다면 한 원소당 4바이트 이므로 4를 곱해주고, 1024를 나눠 킬로바이트 단위로 만들면, 784 킬
로바이트가 됩니다. 이 784킬로바이트의 데이터가 합성곱 계층의 출력으로 저장됩니다.
알렉스넷 AlexNet
▪ 다음 질문은 이 신경망 계층에 학습가능한 파라미터의 개수가 얼마나 될까요?
알렉스넷 AlexNet
▪ 우리는 이 합성곱 계층이 가중치들로 이뤄진 4차원 텐서인걸 알고 있는데 형태는 출력 채널(필터 개수) x 입력 채널 x 커널 크기 x 커
널 크기 였었죠. 여기서 출력 채널은 64였고, 입력 채널은 3, 커널 크기는 11이고, 거기다가 출력 채널의 개수 만큼 길이를 갖는 편향 벡
터도 있었습니다. 그래서 총 학습 가능한 파라미터의 개수는 23,000개 정도가 됩니다.
알렉스넷 AlexNet
▪ 다음으로 이 합성곱 계층을 계산하느데 얼마나 많은 부동 소수점 연산이 수행될까요?
알렉스넷 AlexNet
▪ 신경망의 각 계층에서 소수점 연산 힛수는 오늘 강의에서 다룰 매우 중요한 주제입니다. 우선 신경망에서 소수점 연산에 대해 이야
기하려면 먼저 곱셈과 덧셈의 횟수를 세야 하는데 한번의 곱셈과 덧셈 연산을 하나의 소수점 연산으로 쳐서 구하여야 합니다. 이렇게
하는 이유는 수 많은 계산 하드웨어의 비트들이 한 번에/한 사이클에 소수점 곱샘과 덧셈을 할수 있거든요.
알렉스넷 AlexNet
▪ 이런 이유로 곱샘과 덧샘을 한 연산으로 보고, 합성곱 계층에서의 연산 회수를 세기 위해서 얼마나 출력 텐서에 원소들이 얼마나 있
는지 봐야합니다. 출력 텐서의 원소 갯수는 출력 채널 C_out x 출력 크기 H' x 출력 크기 W'가 되요. 그리고 출력 원소 하나를 계산하는
데 연산을 몇번 하는지 보아야 하는데,
알렉스넷 AlexNet
▪ 이 출력 원소는 합성곱 필터를 입력 차원에다가 슬라이딩 시켜 구했었는데, 출력 원소 하나는 입력 채널 C_in x 커널크기 K x 커널 크
기 K의 크기를 갖는 합성곱 필터 하나와 입력 일부와 내적하고 편향항을 더해서 얻었었죠. 출력 원소 개수와 한 출력 원소 당 연산 횟수
를 정리하면, 이 합성곱 계층에서는 73메가플롭번의 소수점 연산이 수행됩니다.
알렉스넷 AlexNet
▪ 알렉스넷의 두번째 계층은 풀링 계층인데, 아 . 제가 ReLU를 빠트렸네요. 이번 강의에서 설명할 아키텍처들은 ReLU나 다른 비선형 함
수들이 합성곱 계층 뒤에 있다고 가정하겠습니다. 그래서 첫 합성곱 계층가 할성화 함수 뒤에 첫번째 풀링 계층이 있습니다. 이 풀링
케층의 커널 크기는 3이고, 스트라이드는 2, 패딩은 1(강의에서는 1이라 말하는데 slide에는 0이라 표기됨)로 지정하겠습니다. 그러면
이 경우 첫번째 풀링 계층의 출력 형태가 어떻게 될까요?
알렉스넷 AlexNet
▪ 우선 출력 채널의 개수는 입력 채널 각각에 독립적으로 동작하다보니 변하지 않고, 입력과 동일합니다. 그리고 풀링 계층은 입력의
크기를 1/2로 다운샘플링 하는 효과가 있는데, 웃기게도 알렉스넷에서는 (56 - 3)/2 = 53/2가 되다보니 정수로 나눠지지가 않습니다.
아무튼 스트라이드로 나눈 뒤에 +1을 해주고 이걸 내려주면 출력 공간의 크기가 27 x 27이 됩니다.
▪ 다음으로 그러면 풀링 계층의 출력을 저장하려면 메모리 공간이 얼마나 필요할까요?
알렉스넷 AlexNet
풀링 계층 정리 : Convnet 강의
▪ 이전에 봤던거랑 똑같이 출력 원소 하나당 4바이트 공간이 필요하며, 전체 텐서의 수를 곱하면 이 계층에서 필요한 전체 메모리 공간
의 크기를 구할수가 있겠습니다.
알렉스넷 AlexNet
▪ 다음으로 풀링 계층에서 학습가능한 파라미터의 개수를 새보자면 0이 됩니다. 왜냐면 간단하게 수용장 receptive field에 있는 것중
최대값을 구하다보니 풀링 계층에선 학습할 파라미터가 없거든요.
▪ 그러면 풀링 계층에서 소수점 연산은 몇번 수행이 되었을까요?
알렉스넷 AlexNet
▪ 이것도 암산으로 하기는 힘드니 이전에 했던거랑 비슷하게 하자면, 출력 텐서의 수가 얼마나 되는지와 이건 출력 채널 C_out x 출력
크기 H' x 출력 크기 W'로 구할수 있었죠. 그리고 출력 텐서의 한 원소를 계산하는데 몇번의 소수점 연산이 수행되었는지, 소수점 연산
수행 횟수가 필요한데, 출력 텐서 원소 하나 당 소수점 연산은 한 채널의 수용장에서 출력값 하나를 얻었었죠.
알렉스넷 AlexNet
▪ 그래서 이 연산은 3 x 3 크기의 그리드에다가 최대 함수를 써서 이 9개의 원소 중 최대값을 구하였습니다. 그래서 출력 원소 하나를
구하는데 9번의 소수점 연산이 수행됬다고 볼수 있어요. 그래서 정리하면 출력 텐서의 총 원소 개수 x 한 원소당 소수점 연산 횟수가
약 0.4MFLOP정도 됩니다. 합성곱 계층때와 비교하면 소수점연산이 매우 적은데, 일반적으로 합성곱 계층이 풀링 계층보다 훨씬 계산
비용이 크다는걸 알수 있어요.
알렉스넷 AlexNet
▪ 그래서 사람들은 합성곱 계층에서의 연산 수보다 풀링 계층의 연산 수가 적다보니 손으로 직접 풀링 계층의 연산 회수가 얼마나 되
는지 계산하기도 해요.
알렉스넷 AlexNet
알렉스넷 AlexNet
▪ 이제 알렉스넷은 5개의 활성화 계층을 가지고 있는데 각각 계층에서 어떻게 연산되는지 얘기는 하지 않고 넘어갈거지만, 출력의 형
태, 메모리 공간의 크기, 학습 가능한 파라미터 개수, 그리고 FLOP를 아까 본 방식대로 각각 합성곱 계층과 풀링 계층에서 어떻게 되는
지 구할수가 있겠죠.
알렉스넷 AlexNet
▪ 모든 합성곱, 풀링 계층에서의 연산을 마치고 나면 출력 텐서는 256개의 채널과 6 x 6의 공간적 크기를 가지게 되요. 이 다음에는 펼
침 연산 flattening operation을 하는데, 입력 텐서의 공간적 구조(행렬)를 없애 벡터로 만들어 버려요. 이 펼침 계층은 모든 입력들을 벡
터로 만드나 따로 지정한 파라미터는 없고, 소수점 연산도 없습니다.
▪ 펼침 연산을 한 후에는 첫번째로 은닉 유닛이 4096개(강의에서는 496개라고 말하나 슬라이드에서는 4096개로 나옴)인 첫번째 완전
연결 계층이 있습니다. 이 계층 출력을 저장하기 위한 메모리 공간과 학습 가능한 파라미터, flop까지 계산할수 있겠죠.
알렉스넷 AlexNet
▪ 이 첫번째 환전 연결 계층 뒤에는 완전 연결 계층이 2개가 더 있는데, 마지막 완전 연결 계층인 fc8가 1000개 카테고리의 점수를 출력
합니다. 이게 알렉스넷의 구조에요.
알렉스넷 AlexNet
▪ 그러면 어떻게 알렉스넷이 설계되었는지 궁금할 수 있겠는데, 알렉스넷에관한 불편한 사실은 이 합성곱 계층들의 설정 값들은 무수
한 시행착오로 찾았다는겁니다. 이런 값들이 왜 인지는 모르지만 실제로 잘 동작을 해요
알렉스넷 AlexNet
▪ . 그래서 우리는 더 나아가서 많은 사람들이 신경망을 설계하는 방법, 원리를 찾길 원했어요. 신경망 모든 계층의 필터 크기, 스트라
이드 다른 모든걸 조정해나가는 시행 착오없이 할수 있는 방법을요. 하지만 알렉스넷의 경우에는 수많은 시행착오로 얻은 이 값들이
최적의 결과를 보였습니다.
알렉스넷 AlexNet
▪ 한번 이쪽 끝에 있는 세 컬럼들을 보면, 메모리 공간, 학습 가능한 파라미터 수, FLOP를 신경망 흐름을 따라 쭉 내려가면서 볼수 있어
요. 알렉스 넷뿐만아니라 다른 수많은 합성곱 신경망 구조에서도 볼 수 있는 중요한 점을 보자면. 이전에도 얘기했지만 풀링 계층은 내
림 연산을 하면 0이 될 만큼 소수점 연산이 적다고 했었죠. 합성곱 연산에서 풀링 계층은 연산 수를 줄이고자 할때 효과적으로 소수점
연산을 줄일수가 있어요.
알렉스넷 AlexNet
▪ 각 계층에서의 메모리 크기, 파라미터 개수, FLOP를 막대차트로 나타내서 보면, 맨 왼쪽에 메모리 크기에서 흥미로운 추세를 볼수가
있어요. 합성곱 계층의 1 ~ 5번째 출력과 세 완전 연결 계층에서의 출력이 있는데, 알렉스넷에서 매모리 사용량이 크게 줄어드는 추세
가 보이죠. 이건 앞에 있는 합성곱 계층일 수록 상대적으로 출력의 해상도 크고, 필터의 개수가 많다보니 그런데, 특히 신경망 맨 앞에
있는 두 계층이 대부분의 메모리 사용량을 차지하게 되요.
알렉스넷 AlexNet
▪ 이번에 중간에 있는 그림을 보면 이 그림은 각 계층의 학습 가능한 파라미터의 수를 보여주고 있어요. 이 그림에서는 정 반대되는 추
세를 볼수 있는데 합성곱 계층을 계산할때는 매우 적었던 반면에 완전 연결 계층에서는 아주 많은 파라미터를 사용하고 있죠. 가장 학
습가능한 파라미터가 많았던 계층은 펼침 연산 직후에 만나는 첫번째 환전 연결 계층인데,
알렉스넷 AlexNet
▪ FC6에서의 연산을 생각해보면 256 x 6 x 6 크기의 텐서를 펼침연산을 해서 9216크기의 벡터를 입력으로 받고, 은닉 유닛이 4096개와
완전 연결을 시키다보니 이 완전 연결 계층의 가중치 행렬의 크기는 9216 x 4096가 됩니다. 그러면 학습 가능한 파라미터의 개수가 약
37백만, 거의 38백만에 가까운 파라미터를 신경망의 하나의 완전 연결 계층이 갖게 되요.
알렉스넷 AlexNet
▪ 그리고 기본적으로 대부분의 학습 가능한 파라미터가 완전 연결 신경망에 있습니다. 반면에 각 계층에서의 계산 비용을 보면 완전
연결 계층에서는 큰 행렬을 곱하다보니 계산량이 매우 적지만, 모든 합성곱 계층에서 많은 계산량을 차지하고 있는데, 특히 필터의 수
와 해상도가 큰 많은 합성곱 계층에서 계산량이 큰 걸 볼수잇어요.
알렉스넷 AlexNet
▪ 그런데 알렉스 넷 뿐만이 아니라 다른 신경망에서도 메모리 공간이나, 파라미터 개수나, 계산량에서도 일반적으로 이런 추세를 보
여요. 그래서 이후 신경망 아키텍처에 대해 다루면서 더 효율적인 설계를 하기 위해선 이런 추세들을 잘 알고 있어야 하고, 지금까지
알렉스넷 구조에 대해 간략하게 봤습니다.
알렉스넷 AlexNet
감사합니다

More Related Content

What's hot

머피's 머신러닝: Latent Linear Model
머피's 머신러닝: Latent Linear Model머피's 머신러닝: Latent Linear Model
머피's 머신러닝: Latent Linear Model
Jungkyu Lee
 

What's hot (20)

[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
 
제어-물리적시스템의 수학적모델링
제어-물리적시스템의 수학적모델링제어-물리적시스템의 수학적모델링
제어-물리적시스템의 수학적모델링
 
논문-정규분포변환
논문-정규분포변환논문-정규분포변환
논문-정규분포변환
 
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)
 
Chapter 6 Deep feedforward networks - 2
Chapter 6 Deep feedforward networks - 2Chapter 6 Deep feedforward networks - 2
Chapter 6 Deep feedforward networks - 2
 
밑바닥부터 시작하는딥러닝 8장
밑바닥부터 시작하는딥러닝 8장밑바닥부터 시작하는딥러닝 8장
밑바닥부터 시작하는딥러닝 8장
 
Chapter 7 Regularization for deep learning - 3
Chapter 7 Regularization for deep learning - 3Chapter 7 Regularization for deep learning - 3
Chapter 7 Regularization for deep learning - 3
 
딥러닝 기본 원리의 이해
딥러닝 기본 원리의 이해딥러닝 기본 원리의 이해
딥러닝 기본 원리의 이해
 
Image Deep Learning 실무적용
Image Deep Learning 실무적용Image Deep Learning 실무적용
Image Deep Learning 실무적용
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
 
텐서플로우로 배우는 딥러닝
텐서플로우로 배우는 딥러닝텐서플로우로 배우는 딥러닝
텐서플로우로 배우는 딥러닝
 
머피's 머신러닝: Latent Linear Model
머피's 머신러닝: Latent Linear Model머피's 머신러닝: Latent Linear Model
머피's 머신러닝: Latent Linear Model
 
Chapter 9 - convolutional networks
Chapter 9 - convolutional networksChapter 9 - convolutional networks
Chapter 9 - convolutional networks
 
Ai 그까이거
Ai 그까이거Ai 그까이거
Ai 그까이거
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류
 
밑바닥부터 시작하는 딥러닝_신경망학습
밑바닥부터 시작하는 딥러닝_신경망학습밑바닥부터 시작하는 딥러닝_신경망학습
밑바닥부터 시작하는 딥러닝_신경망학습
 
알기쉬운 Variational autoencoder
알기쉬운 Variational autoencoder알기쉬운 Variational autoencoder
알기쉬운 Variational autoencoder
 
3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)
 

Similar to [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷

Convolutional neural networks
Convolutional neural networksConvolutional neural networks
Convolutional neural networks
HyunjinBae3
 

Similar to [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷 (20)

HistoryOfCNN
HistoryOfCNNHistoryOfCNN
HistoryOfCNN
 
[Paper Review] Visualizing and understanding convolutional networks
[Paper Review] Visualizing and understanding convolutional networks[Paper Review] Visualizing and understanding convolutional networks
[Paper Review] Visualizing and understanding convolutional networks
 
03.12 cnn backpropagation
03.12 cnn backpropagation03.12 cnn backpropagation
03.12 cnn backpropagation
 
Mlp logical input pattern classfication report doc
Mlp logical input pattern classfication report docMlp logical input pattern classfication report doc
Mlp logical input pattern classfication report doc
 
Dl from scratch(7)
Dl from scratch(7)Dl from scratch(7)
Dl from scratch(7)
 
Convolutional neural networks
Convolutional neural networksConvolutional neural networks
Convolutional neural networks
 
History of Vision AI
History of Vision AIHistory of Vision AI
History of Vision AI
 
GoogLenet
GoogLenetGoogLenet
GoogLenet
 
Chapter 10 sequence modeling recurrent and recursive nets
Chapter 10 sequence modeling recurrent and recursive netsChapter 10 sequence modeling recurrent and recursive nets
Chapter 10 sequence modeling recurrent and recursive nets
 
Coursera Machine Learning (by Andrew Ng)_강의정리
Coursera Machine Learning (by Andrew Ng)_강의정리Coursera Machine Learning (by Andrew Ng)_강의정리
Coursera Machine Learning (by Andrew Ng)_강의정리
 
면접 대비 벡터, CS 개념과 사례
면접 대비 벡터, CS 개념과 사례면접 대비 벡터, CS 개념과 사례
면접 대비 벡터, CS 개념과 사례
 
Alexnet paper review
Alexnet paper reviewAlexnet paper review
Alexnet paper review
 
LockFree Algorithm
LockFree AlgorithmLockFree Algorithm
LockFree Algorithm
 
Lecture 4: Neural Networks I
Lecture 4: Neural Networks ILecture 4: Neural Networks I
Lecture 4: Neural Networks I
 
08. spectal clustering
08. spectal clustering08. spectal clustering
08. spectal clustering
 
Seed2016 - 개미수열 한주영 (annotated)
Seed2016 - 개미수열 한주영 (annotated)Seed2016 - 개미수열 한주영 (annotated)
Seed2016 - 개미수열 한주영 (annotated)
 
Xception mhkim
Xception mhkimXception mhkim
Xception mhkim
 
CNN
CNNCNN
CNN
 
Deep Learning from scratch 5장 : backpropagation
 Deep Learning from scratch 5장 : backpropagation Deep Learning from scratch 5장 : backpropagation
Deep Learning from scratch 5장 : backpropagation
 
LeNet & GoogLeNet
LeNet & GoogLeNetLeNet & GoogLeNet
LeNet & GoogLeNet
 

More from jdo

영상 기반 SLAM 알고리즘 시험
영상 기반 SLAM 알고리즘 시험영상 기반 SLAM 알고리즘 시험
영상 기반 SLAM 알고리즘 시험
jdo
 

More from jdo (20)

[컴퓨터비전과 인공지능] 6. 역전파 1
[컴퓨터비전과 인공지능] 6. 역전파 1[컴퓨터비전과 인공지능] 6. 역전파 1
[컴퓨터비전과 인공지능] 6. 역전파 1
 
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수
 
[리트코드 문제 풀기] 연결 리스트
[리트코드 문제 풀기] 연결 리스트[리트코드 문제 풀기] 연결 리스트
[리트코드 문제 풀기] 연결 리스트
 
[리트코드 문제 풀기] 배열
[리트코드 문제 풀기] 배열[리트코드 문제 풀기] 배열
[리트코드 문제 풀기] 배열
 
[컴퓨터비전과 인공지능] 4. 최적화
[컴퓨터비전과 인공지능] 4. 최적화[컴퓨터비전과 인공지능] 4. 최적화
[컴퓨터비전과 인공지능] 4. 최적화
 
[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제
[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제
[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제
 
[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부
[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부
[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부
 
Titanic kaggle competition
Titanic kaggle competitionTitanic kaggle competition
Titanic kaggle competition
 
1 2. 직선과 평면에서의 벡터 방정식
1 2. 직선과 평면에서의 벡터 방정식1 2. 직선과 평면에서의 벡터 방정식
1 2. 직선과 평면에서의 벡터 방정식
 
1-1. 공학과 수학에서 벡터/ 내적 직교
1-1. 공학과 수학에서 벡터/ 내적 직교1-1. 공학과 수학에서 벡터/ 내적 직교
1-1. 공학과 수학에서 벡터/ 내적 직교
 
소형 무인 비행체 5장-선형 모델 설계
 소형 무인 비행체 5장-선형 모델 설계 소형 무인 비행체 5장-선형 모델 설계
소형 무인 비행체 5장-선형 모델 설계
 
소형 무인 비행체 4장-힘과 모멘트
소형 무인 비행체 4장-힘과 모멘트소형 무인 비행체 4장-힘과 모멘트
소형 무인 비행체 4장-힘과 모멘트
 
소형 무인 비행체 3장-기구학과 동역학
소형 무인 비행체 3장-기구학과 동역학소형 무인 비행체 3장-기구학과 동역학
소형 무인 비행체 3장-기구학과 동역학
 
소형 무인 비행체 2장-좌표계
소형 무인 비행체 2장-좌표계소형 무인 비행체 2장-좌표계
소형 무인 비행체 2장-좌표계
 
소형 무인 비행기 1장-소개
소형 무인 비행기 1장-소개소형 무인 비행기 1장-소개
소형 무인 비행기 1장-소개
 
소형 무인 비행기-서론
소형 무인 비행기-서론소형 무인 비행기-서론
소형 무인 비행기-서론
 
Improved techniques for grid mapping with rao blackwellized particle filters 번역
Improved techniques for grid mapping with rao blackwellized particle filters 번역Improved techniques for grid mapping with rao blackwellized particle filters 번역
Improved techniques for grid mapping with rao blackwellized particle filters 번역
 
Slam algorithms
Slam algorithmsSlam algorithms
Slam algorithms
 
영상 기반 SLAM 알고리즘 시험
영상 기반 SLAM 알고리즘 시험영상 기반 SLAM 알고리즘 시험
영상 기반 SLAM 알고리즘 시험
 
논문-특징점 기반 단안 영상 SLAM의 최적화 기법 및 필터링 기법의 성능 연구
논문-특징점 기반 단안 영상 SLAM의 최적화 기법 및 필터링 기법의 성능 연구논문-특징점 기반 단안 영상 SLAM의 최적화 기법 및 필터링 기법의 성능 연구
논문-특징점 기반 단안 영상 SLAM의 최적화 기법 및 필터링 기법의 성능 연구
 

Recently uploaded

Recently uploaded (8)

JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 

[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷

  • 1. 컴퓨터 비전을 위한 합성곱 신경망 설계 Convolution Networks Arcitectures 1 - AlexNet Michigan Online, Justin Johnson, Computer Vision, 2021. 02. 15 도정찬
  • 2. ▪ 오늘은 8번째 강의로 합성곱 신경망 설계에 대해서 이야기 해 봅시다. 이제 정말 합성곱 신경망에 대해 자세하게 살펴볼건데, 지난 시간에 어떻게 설계하는지 얘기하지는 못해 다들 궁금해 할것 같습니다. 지난 시간때는 합성곱 신경망을 만드는데 사용할수 있는 블록들/계층들에 대해서 얘기하고, 합성곱 신경망이 합성곱 계층, 풀링계층, ReLU같은 활성화 함수, 때로는 배치 정규화 같 은 정규화 계층으로 만든 신경망인걸 알아봤습니다. 지난 시간 : 합성곱 신경망의 구성 요소 Components of a Convolution Network
  • 3. ▪ 하지만 이들을 어떻게 연결시켜서 고성능의 합성곱 신경망을 만드는지에 대해서는 아직 얘길 못했었죠. 여러분들은 이 연산자 들을 마음대로 사용해도 되기는 하지만, 어떻게 합칠지, 하이퍼 파라미터를 어떻게 설정하여 합성곱 신경망의 성능이 좋아지는지 는 지는 아직 잘 모를겁니다. 지난 시간 : 합성곱 신경망의 구성 요소 Components of a Convolution Network
  • 4. ▪ 어떻게 해야 될지 모르는채로 있기 보다는, 최근 수년간 사람들이 사용해온 역사적인 다양한 심층 합성곱 신경망의 설계물들을 간략하게 살펴보겠습니다. 이와 관련된 좋은 주제로 이미지넷 분류 대회가 있는데, 첫째 둘째 강의에서 이미지넷은 이미지 분류 를 하기 위한 1.2백만개의 훈련 이미지를 가진 거대한 데이터셋이라고 했엇죠.. 이미지넷 분류 대회 ImageNet Classification Challenge
  • 5. ▪ 그래서 분류 신경망으로 이미지넷의 1.2백만개의 훈련 데이터셋에 카테고리가 1000가지가 있는데 이걸 분류할수 잇어야 합니 다. 그리고 이미지넷은 매년 열리는 이미지 분류 분야의 큰 밴치마크 대회에요. 2010, 2011년에는 서로 다른 팀들이 최고의 성능 을 보이는 이미지 분류 시스템으로 우승을 했었는데, 전세계 사람들이 고성능 이미지 분류 시스템을 만들며 경쟁하고 있었습니다. 이미지넷 분류 대회 ImageNet Classification Challenge
  • 6. ▪ 특히 이미지 분류 분야는 최근에 합성곱 신경망을 이용한 다양한 방법으로 연구가 이뤄지면서 큰 발전이 있었는데, 매년 가장 높은 성능을 보인 방법들에 대해 얘기하면 좋을거같아요. 이미 2010, 2011년에 우승한 방법에 대해 잠깐 봤었는데, 이 방법들은 합성곱 신경망 기반 방법이 아니라, 여러 종류의 특징들을 층들로 조합하여 선형 분류기로 학습시켯었습니다. 이미지넷 분류 대회 ImageNet Classification Challenge
  • 7. ▪ 하지만 2012년부터 합성곱 신경망이 컴퓨터 비전 연구에서 메인 스트림 주제가 었습니다. 이 때 알랙스넷이 이미지넷에 나오 든 다른 방법들보다 훨씬 뛰어난 성능을 보여줬엇거든요. 이미지넷 분류 대회 ImageNet Classification Challenge
  • 8. ▪ 알렉스넷이 어떻게 생겻냐면, 알렉스넷은 심층 합성곱 신경망으로 오늘날 표준 신경망같이 여겨지고 있어요. 그런데 제가 볼때 는 알랙스넷은 깊다고 보기는힘든데 여러분들이 수업 내용을 진행하면서 볼 겁니다. 하지만 알렉스넷은 227 x 227 픽셀을 입력 으로 받고, 5개의 합성곱 계층(통과 후 맥스 풀링)과 3개의 완전 연결 신경망 계층으로 이뤄져 있습니다. 그리고 알렉스넷에서는 활성화 함수로 ReLU 함수를 사용하고 있어요. 알렉스넷 AlexNet
  • 9. ▪ 알렉스넷은 가장 먼저 활성화 함수로 ReLU를 사용한 합성곱 신경망중 하나에요. 그리고 알렉스넷 구조에는 다른 종류의 특징 과 처리과정이 있는데, 이제 사용되지 않은 지역 반응 정규화 계층 Local Response Normalization이라고 부르는게 있습니다. 그 래서 자세히는 다루진 않을건데, 이건 배치 정규화 같은 정규화 기법의 초기 버전으로 볼수 있는 다른 종류의 정규화에요. 알렉스넷 AlexNet
  • 10. ▪ 하지만 오늘날에는 알렉스넷에서 사용했던 정규화 기법 보다는 배치 정규화를 자주 사용하고 있어요. 알렉스넷의 다른 부분은 Alex Khrizevsky와 동료들이 이 신경망을 연구할 2011, 2012년 당시에 그들이 학습때 사용한 가장 좋은 GPU가 GTX580 였는데, 이 GPU는 메모리가 3GB뿐이었었어요. 알렉스넷 AlexNet
  • 11. ▪ 오늘날에야 코랩 같은데를 봐도 GPU 메모리가 12, 16 GB정도 되지만, 2011년에는 GPU 메모리가 충분하지 않았었죠. 이 신경망을 GPU 메모리에서 학습시키기 위해 2개의 GTX 580에다가 복잡한 방법으로 신경망을 나눠서 두 GPU 카드에 학습시키도록 구현했었습 니다. 신경망을 분할하여 GPU를 학습시키는 방법이 오늘날에도 가끔 사용되기는한데, 오늘 강의에서 볼 신경망을 물론 대부분의 신 경망에서도 잘 사용되지는 않아요. 알렉스넷 AlexNet
  • 12. ▪ 여기에 알렉스넷 논문에서 볼수 있는 엄청 유명한 그림인 알렉스넷 합성곱 신경망 구조가 있습니다. 여기 보면 5개의 합성곱 계층이 있는데, 2개의 GPU에서 학습할수 있게 하려고 위 아래로 2개 덩어리로 나누어 두 GPU로 배분되고 있어요. 이 그림에서 웃긴 점은 윗 부분이 잘려져 있는데, 이게 엄청 중요한 논문임임에도 실재 논문이 출판될 때의 버전이라 실제 알렉스넷 논문도 잘려져 있습니다. 알렉스넷 AlexNet
  • 13. ▪ 알렉스 넷을 역사적으로 짚어보자면 이 논문이 얼마나 영향력이 큰지 얘기하기 힘들지만, 인용 횟수로 본다면 이 논문의 인용 횟수 는 출판된 2012년부터 46,000회나 인용되었고, 인용 횟수 추세를 보면 여전히 크게 증가하고 있다보니 컴퓨터 과학 분야에서 가장 인 용이 많이된 논문들 하나가 되었습니다. 제 생각에는 최근모든 과학 분야에서두요. 알렉스넷 AlexNet
  • 14. ▪ 다른 유명한 역사적인 논문들과 비교해보자, 여기 보면 찰스 다윈의 1859년 종의 기원이 알렉스넷과 비슷한 횟수 만큼 인용되었네 요. 정보 이론 분야를 창시한 셰논의 통신의 수학적 이론은 1953년에 나와서 69,000회 인용되었구요.이번에 동시대의 가장 중요한 연 구 논문을 보자면 2012년에 힉스 입자 발견에 대한 논문이 알렉스넷과 같은 년도에 나왔는데, 우주를 이루는 입자를 발견하면서 기초 과학을 크게 진보시킨 논문이나 알렉스넷이 46,000회 이용된걸 비교하면 14,000회 밖에 인용되지 않았습니다. 알렉스넷 AlexNet
  • 15. ▪ 잠깐 얘기해야될게 있는데, 논문의 인용 회수가 그 논문의 영향력을 나타낸다고 할순 없고, 인용횟수만 가지고 비교하는건 올바르 진 않아요. 하지만 알렉스넷 논문에서 소개한 아키텍처가 컴퓨터 비전, 컴퓨터 과학, 아니라 인류 전체 지식에 큰 진보를 가져왔다고 해도 과언이 아니라고 할수 있겠습니다. 알렉스넷 AlexNet
  • 16. ▪ 그 동안 역사적인 관점에서 알렉스넷을 이야기 했는데, 그러면 알렉스넷 아키텍처 구조는 대체 어떻게 생겼을까요? 우선 알렉스넷 은 277 x 277 크기의 RGB 이미지를 입력으로 받으면서 시작합니다. 그래서 입력 채널이 3개가 있습니다. 첫 합성곱 계층은 이전 강의에 서 이야기를 했었는데, 알렉스넷의 첫 합성곱 계층은 64개의 필터와 스트라이드는 4, 패딩은 2로 위의 그림과 같이 지정되어 있습니다. 그러면 첫 합성곱 계층의 출력은 어떻게 될까요? 알렉스넷 AlexNet
  • 17. ▪ 합성곱 계층에서의 채널의 수는 항상 필터의 수와 같다보니 64가 됩니다. 그러면 다음 질문으로 출력 크기는 어떻게 될까요? 알렉스넷 AlexNet
  • 18. ▪ 이 테이플에서 폭과 높이를 한 컬럼에다가 짚어 넣고 있는데 양 방향 다 같은 값이거든요. 이 겨우 합성곱 계층에서의 출력 공간적 크 기는 56이 됩니다. 이전 강의에서 출력 크기를 계산하는 식을 봤었는데 (입력 크기 - 커널 크기 + 2 * 패딩)/스트라이드 + 1을 했었죠. 그 렇게 해서 첫 합성곱 계층의 출력으로 56을 얻었습니다. 그러면 다음 질문으로 이 출력의 특징 지도들이 몇 킬로바이트나 차지할까요? 알렉스넷 AlexNet
  • 19. ▪ 그러면 다음 질문으로 이 출력의 특징 지도들이 몇 킬로바이트나 차지할까요? 알렉스넷 AlexNet
  • 20. ▪ 이걸 암산으로 하기는 힘들텐데 출력 원소의 개수를 채널 수 C x 출력 크기 H' x 출력 크기 W'을 하면 대략 200,000개 정도 됩니다. 이 원소들을 32bit 소수점으로 저장을 시킨다면 한 원소당 4바이트 이므로 4를 곱해주고, 1024를 나눠 킬로바이트 단위로 만들면, 784 킬 로바이트가 됩니다. 이 784킬로바이트의 데이터가 합성곱 계층의 출력으로 저장됩니다. 알렉스넷 AlexNet
  • 21. ▪ 다음 질문은 이 신경망 계층에 학습가능한 파라미터의 개수가 얼마나 될까요? 알렉스넷 AlexNet
  • 22. ▪ 우리는 이 합성곱 계층이 가중치들로 이뤄진 4차원 텐서인걸 알고 있는데 형태는 출력 채널(필터 개수) x 입력 채널 x 커널 크기 x 커 널 크기 였었죠. 여기서 출력 채널은 64였고, 입력 채널은 3, 커널 크기는 11이고, 거기다가 출력 채널의 개수 만큼 길이를 갖는 편향 벡 터도 있었습니다. 그래서 총 학습 가능한 파라미터의 개수는 23,000개 정도가 됩니다. 알렉스넷 AlexNet
  • 23. ▪ 다음으로 이 합성곱 계층을 계산하느데 얼마나 많은 부동 소수점 연산이 수행될까요? 알렉스넷 AlexNet
  • 24. ▪ 신경망의 각 계층에서 소수점 연산 힛수는 오늘 강의에서 다룰 매우 중요한 주제입니다. 우선 신경망에서 소수점 연산에 대해 이야 기하려면 먼저 곱셈과 덧셈의 횟수를 세야 하는데 한번의 곱셈과 덧셈 연산을 하나의 소수점 연산으로 쳐서 구하여야 합니다. 이렇게 하는 이유는 수 많은 계산 하드웨어의 비트들이 한 번에/한 사이클에 소수점 곱샘과 덧셈을 할수 있거든요. 알렉스넷 AlexNet
  • 25. ▪ 이런 이유로 곱샘과 덧샘을 한 연산으로 보고, 합성곱 계층에서의 연산 회수를 세기 위해서 얼마나 출력 텐서에 원소들이 얼마나 있 는지 봐야합니다. 출력 텐서의 원소 갯수는 출력 채널 C_out x 출력 크기 H' x 출력 크기 W'가 되요. 그리고 출력 원소 하나를 계산하는 데 연산을 몇번 하는지 보아야 하는데, 알렉스넷 AlexNet
  • 26. ▪ 이 출력 원소는 합성곱 필터를 입력 차원에다가 슬라이딩 시켜 구했었는데, 출력 원소 하나는 입력 채널 C_in x 커널크기 K x 커널 크 기 K의 크기를 갖는 합성곱 필터 하나와 입력 일부와 내적하고 편향항을 더해서 얻었었죠. 출력 원소 개수와 한 출력 원소 당 연산 횟수 를 정리하면, 이 합성곱 계층에서는 73메가플롭번의 소수점 연산이 수행됩니다. 알렉스넷 AlexNet
  • 27. ▪ 알렉스넷의 두번째 계층은 풀링 계층인데, 아 . 제가 ReLU를 빠트렸네요. 이번 강의에서 설명할 아키텍처들은 ReLU나 다른 비선형 함 수들이 합성곱 계층 뒤에 있다고 가정하겠습니다. 그래서 첫 합성곱 계층가 할성화 함수 뒤에 첫번째 풀링 계층이 있습니다. 이 풀링 케층의 커널 크기는 3이고, 스트라이드는 2, 패딩은 1(강의에서는 1이라 말하는데 slide에는 0이라 표기됨)로 지정하겠습니다. 그러면 이 경우 첫번째 풀링 계층의 출력 형태가 어떻게 될까요? 알렉스넷 AlexNet
  • 28. ▪ 우선 출력 채널의 개수는 입력 채널 각각에 독립적으로 동작하다보니 변하지 않고, 입력과 동일합니다. 그리고 풀링 계층은 입력의 크기를 1/2로 다운샘플링 하는 효과가 있는데, 웃기게도 알렉스넷에서는 (56 - 3)/2 = 53/2가 되다보니 정수로 나눠지지가 않습니다. 아무튼 스트라이드로 나눈 뒤에 +1을 해주고 이걸 내려주면 출력 공간의 크기가 27 x 27이 됩니다. ▪ 다음으로 그러면 풀링 계층의 출력을 저장하려면 메모리 공간이 얼마나 필요할까요? 알렉스넷 AlexNet 풀링 계층 정리 : Convnet 강의
  • 29. ▪ 이전에 봤던거랑 똑같이 출력 원소 하나당 4바이트 공간이 필요하며, 전체 텐서의 수를 곱하면 이 계층에서 필요한 전체 메모리 공간 의 크기를 구할수가 있겠습니다. 알렉스넷 AlexNet
  • 30. ▪ 다음으로 풀링 계층에서 학습가능한 파라미터의 개수를 새보자면 0이 됩니다. 왜냐면 간단하게 수용장 receptive field에 있는 것중 최대값을 구하다보니 풀링 계층에선 학습할 파라미터가 없거든요. ▪ 그러면 풀링 계층에서 소수점 연산은 몇번 수행이 되었을까요? 알렉스넷 AlexNet
  • 31. ▪ 이것도 암산으로 하기는 힘드니 이전에 했던거랑 비슷하게 하자면, 출력 텐서의 수가 얼마나 되는지와 이건 출력 채널 C_out x 출력 크기 H' x 출력 크기 W'로 구할수 있었죠. 그리고 출력 텐서의 한 원소를 계산하는데 몇번의 소수점 연산이 수행되었는지, 소수점 연산 수행 횟수가 필요한데, 출력 텐서 원소 하나 당 소수점 연산은 한 채널의 수용장에서 출력값 하나를 얻었었죠. 알렉스넷 AlexNet
  • 32. ▪ 그래서 이 연산은 3 x 3 크기의 그리드에다가 최대 함수를 써서 이 9개의 원소 중 최대값을 구하였습니다. 그래서 출력 원소 하나를 구하는데 9번의 소수점 연산이 수행됬다고 볼수 있어요. 그래서 정리하면 출력 텐서의 총 원소 개수 x 한 원소당 소수점 연산 횟수가 약 0.4MFLOP정도 됩니다. 합성곱 계층때와 비교하면 소수점연산이 매우 적은데, 일반적으로 합성곱 계층이 풀링 계층보다 훨씬 계산 비용이 크다는걸 알수 있어요. 알렉스넷 AlexNet
  • 33. ▪ 그래서 사람들은 합성곱 계층에서의 연산 수보다 풀링 계층의 연산 수가 적다보니 손으로 직접 풀링 계층의 연산 회수가 얼마나 되 는지 계산하기도 해요. 알렉스넷 AlexNet
  • 34. 알렉스넷 AlexNet ▪ 이제 알렉스넷은 5개의 활성화 계층을 가지고 있는데 각각 계층에서 어떻게 연산되는지 얘기는 하지 않고 넘어갈거지만, 출력의 형 태, 메모리 공간의 크기, 학습 가능한 파라미터 개수, 그리고 FLOP를 아까 본 방식대로 각각 합성곱 계층과 풀링 계층에서 어떻게 되는 지 구할수가 있겠죠.
  • 35. 알렉스넷 AlexNet ▪ 모든 합성곱, 풀링 계층에서의 연산을 마치고 나면 출력 텐서는 256개의 채널과 6 x 6의 공간적 크기를 가지게 되요. 이 다음에는 펼 침 연산 flattening operation을 하는데, 입력 텐서의 공간적 구조(행렬)를 없애 벡터로 만들어 버려요. 이 펼침 계층은 모든 입력들을 벡 터로 만드나 따로 지정한 파라미터는 없고, 소수점 연산도 없습니다.
  • 36. ▪ 펼침 연산을 한 후에는 첫번째로 은닉 유닛이 4096개(강의에서는 496개라고 말하나 슬라이드에서는 4096개로 나옴)인 첫번째 완전 연결 계층이 있습니다. 이 계층 출력을 저장하기 위한 메모리 공간과 학습 가능한 파라미터, flop까지 계산할수 있겠죠. 알렉스넷 AlexNet
  • 37. ▪ 이 첫번째 환전 연결 계층 뒤에는 완전 연결 계층이 2개가 더 있는데, 마지막 완전 연결 계층인 fc8가 1000개 카테고리의 점수를 출력 합니다. 이게 알렉스넷의 구조에요. 알렉스넷 AlexNet
  • 38. ▪ 그러면 어떻게 알렉스넷이 설계되었는지 궁금할 수 있겠는데, 알렉스넷에관한 불편한 사실은 이 합성곱 계층들의 설정 값들은 무수 한 시행착오로 찾았다는겁니다. 이런 값들이 왜 인지는 모르지만 실제로 잘 동작을 해요 알렉스넷 AlexNet
  • 39. ▪ . 그래서 우리는 더 나아가서 많은 사람들이 신경망을 설계하는 방법, 원리를 찾길 원했어요. 신경망 모든 계층의 필터 크기, 스트라 이드 다른 모든걸 조정해나가는 시행 착오없이 할수 있는 방법을요. 하지만 알렉스넷의 경우에는 수많은 시행착오로 얻은 이 값들이 최적의 결과를 보였습니다. 알렉스넷 AlexNet
  • 40. ▪ 한번 이쪽 끝에 있는 세 컬럼들을 보면, 메모리 공간, 학습 가능한 파라미터 수, FLOP를 신경망 흐름을 따라 쭉 내려가면서 볼수 있어 요. 알렉스 넷뿐만아니라 다른 수많은 합성곱 신경망 구조에서도 볼 수 있는 중요한 점을 보자면. 이전에도 얘기했지만 풀링 계층은 내 림 연산을 하면 0이 될 만큼 소수점 연산이 적다고 했었죠. 합성곱 연산에서 풀링 계층은 연산 수를 줄이고자 할때 효과적으로 소수점 연산을 줄일수가 있어요. 알렉스넷 AlexNet
  • 41. ▪ 각 계층에서의 메모리 크기, 파라미터 개수, FLOP를 막대차트로 나타내서 보면, 맨 왼쪽에 메모리 크기에서 흥미로운 추세를 볼수가 있어요. 합성곱 계층의 1 ~ 5번째 출력과 세 완전 연결 계층에서의 출력이 있는데, 알렉스넷에서 매모리 사용량이 크게 줄어드는 추세 가 보이죠. 이건 앞에 있는 합성곱 계층일 수록 상대적으로 출력의 해상도 크고, 필터의 개수가 많다보니 그런데, 특히 신경망 맨 앞에 있는 두 계층이 대부분의 메모리 사용량을 차지하게 되요. 알렉스넷 AlexNet
  • 42. ▪ 이번에 중간에 있는 그림을 보면 이 그림은 각 계층의 학습 가능한 파라미터의 수를 보여주고 있어요. 이 그림에서는 정 반대되는 추 세를 볼수 있는데 합성곱 계층을 계산할때는 매우 적었던 반면에 완전 연결 계층에서는 아주 많은 파라미터를 사용하고 있죠. 가장 학 습가능한 파라미터가 많았던 계층은 펼침 연산 직후에 만나는 첫번째 환전 연결 계층인데, 알렉스넷 AlexNet
  • 43. ▪ FC6에서의 연산을 생각해보면 256 x 6 x 6 크기의 텐서를 펼침연산을 해서 9216크기의 벡터를 입력으로 받고, 은닉 유닛이 4096개와 완전 연결을 시키다보니 이 완전 연결 계층의 가중치 행렬의 크기는 9216 x 4096가 됩니다. 그러면 학습 가능한 파라미터의 개수가 약 37백만, 거의 38백만에 가까운 파라미터를 신경망의 하나의 완전 연결 계층이 갖게 되요. 알렉스넷 AlexNet
  • 44. ▪ 그리고 기본적으로 대부분의 학습 가능한 파라미터가 완전 연결 신경망에 있습니다. 반면에 각 계층에서의 계산 비용을 보면 완전 연결 계층에서는 큰 행렬을 곱하다보니 계산량이 매우 적지만, 모든 합성곱 계층에서 많은 계산량을 차지하고 있는데, 특히 필터의 수 와 해상도가 큰 많은 합성곱 계층에서 계산량이 큰 걸 볼수잇어요. 알렉스넷 AlexNet
  • 45. ▪ 그런데 알렉스 넷 뿐만이 아니라 다른 신경망에서도 메모리 공간이나, 파라미터 개수나, 계산량에서도 일반적으로 이런 추세를 보 여요. 그래서 이후 신경망 아키텍처에 대해 다루면서 더 효율적인 설계를 하기 위해선 이런 추세들을 잘 알고 있어야 하고, 지금까지 알렉스넷 구조에 대해 간략하게 봤습니다. 알렉스넷 AlexNet