SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
도정찬
컴퓨터 비전을 위한 신경망 학습 파트 1
Training Neural Network Part 1
- 1. 활성화 함수 : Sigmoid, tanh, ReLU
Michigan Online, Justin Johnson, Computer Vision, 2021. 02. 21
지난 시간 : 하드웨어와 소프트웨어
▪ 이번 시간에는 10번쨰 강의. 강의가 두자릿수 번째 되서 정말 기쁩니다. 오늘은 여러가지 팁과 기법들에 대해서 이야기 할건데 여러
분들이 어떻게 실제 신경망을 학습시킬건지에 대해서 이야기해봅시다. 지난 시간에는 신경망 관련 하드웨어와 소프트웨어에 관해서
이야기 하면서 CPU와는 다른 종류의 하드웨어인 GPU와 TPU에 대해서 이야기하였습니다.
지난 시간 : 하드웨어와 소프트웨어
▪ 또, 이런 신경망을 구현하는데 사용하는 소프트웨어 시스템, 프레임워크들에 대해서 이야기 했고, 특히 정적 그래프 static graph와 동
적 그래프 dynamic graph에 대해서도 다뤄봤습니다. 그리고 파이토치와 텐서 플로우의 길항관계 trade off에 대해서도 살펴봤었구요.
그래서 지금까지 본 모든 내용들이 신경망을 학습시키는데 알아야 해요. 하지만 신경망을 효율적으로 학습시키기 위해서 여전히 알
아야 할것들이 많이 있습니다.
개요
▪ 그래서 저는 좀 나눠서 살펴보고 싶어요. 신경망 학습에 필요한 것들이 여러가지가 있는데, 여러분들이 신경망을 잘 학습하기 위해
서 알아야 하는 것들이요. 그래서 이런 것들을 세가지 카태고리로 나누어서 보겠습니다. 시작 단계 one time setup에서 알아야할 것이
한 가지인데, 여러분이 학습 과정을 시작하기 전에는 여러분은 활성화 함수나, 아키텍처 등 다양한 것들을 정해야 되겠죠.
개요
▪ 다음으로 학습이 시작되고 나면 최적화 과정에서 해야할 것들이 있는데, 학습률 스케쥴링(학습률을 어떻게 바꿔나갈것인가)이나 학
습할 데이터 량을 늘릴수도 있을 거에요.
▪학습을 마치고 나면 여러분들의 신경망 맨 꼭대기에다가 추가적인 작업이 필요할수도 있어요. 예를들면 모델 앙상블을 시킨다거나
추가적인 학습을 할수도 있겠죠.
개요
▪ 오늘이랑 다음주 강의에서는 실제로 어떻게 신경망을 학습해나가는지에 대해 자세히 알아보록 합시다.
활성화 함수
▪ 오늘은 우선 활성화 함수에 대해 이야기하면서 시작해봅시다.
▪이전에 인공 뉴런에 대해 배웠던걸 떠올려보면 항상 활성화 함수를 가지고 있었어요. 우선 어떤 선형 함수가 있는데, 이전 계층의 뉴
런들로부터 입력들을 모아서 이들을 합했었죠. 합하는 값들은 입력과 가중치 행렬을 곱한것인데 이렇게 합 연산을 한 후에 비선형 활
성화 함수를 통과 했죠. 다음 계층으로 넘어가기 전에요.
활성화 함수들
▪ 그러면 신경망에 사용할수 잇는 몇가지 비선형적인 활성화 함수에 대해서 살펴봅시다. 이 함수들은 매우 중요한 역활을 하고 있어요
왜냐면 이 활성화 함수를 제거해버리면 모든 선형 연산들, 계층들이 합쳐져서 하나의 선형 계층이 되어버리거든요. 그래서 활성화 함
수가 있는게 우리가 신경망을 만들어나가는대 매우 중요하다고 배웠습니다.
활성화 함수들
▪ 그리고 이 활성화 함수로 쓸수있는게 엄청 다양하게 있어요. 하지만 지난번에 이 슬라이드에서 봤던 이런 활성화 함수에 대해서나
길항 관계에 대해서는 많이 이야기 하지는 않았엇죠. 그래서 저는 오늘 각각의 활성화 함수들의 장단점과 다른 고려사항들 신경망을
만드는데 어떤 활성화 함수를 고를지 같은 것들에 대해서 자세히 이야기 해봅시다.
활성화 함수들
▪ 수십년간 신경망 연구에서 사용되어온 가장 고전적인 활성화 함수 중 하나는 시그모이드 함수입니다. 이 시그모이드 활성화 함수는
이름이 왜이렇냐면 S자 커브 형태를 띄거든요. 이 함수는 가장 널리 사용되었었던 활성화 함수였는데, 이 결과를 확률로 이해할 수 있
었거든요.
활성화 함수 : 시그모이드
▪ 그래서 우리는 신경망에 대해서 볼때 각각의 뉴런들이 켜진건지 꺼졋는지 식으로 이해할수 있었고, 우리가 출력이 0과 1사이에 있는
값이 필요하거나 확률의 형태가 되기를 필요한 경우도 있었습니다. 그래서 결과를 확률로 나타내거나 참거짓으로 해석하는데 시그모
이드가 유용하였습니다.
활성화 함수 : 시그모이드
▪ 또 생물학적 뉴런이 신호를 받아 보내는 경우를 떠올린다면, 시그모이드의 결과를 뉴런의 활성률 firing rate로 볼수 있구요. 이 활성
률은 들어오는 신호에 비선형적으로 영향을 받다보니, 다시 말하면 출력이 비선형적이다보니 시그모이드 함수는 활성정도를 비선형
적으로 설계하기 위한 간단한 방법이었습니다.
활성화 함수 : 시그모이드
▪ 고전적으로 시그모이드 비선형성이 왜 널리 사용되었는지에 대해서 이런 이유들도 있지만, 실제로 이 비선형성이 좋지 않은 이유들
도 여러가지가 있습니다. 현실적인 문제중 하나는 이 활성화 함수의 맨 앞부분과 끝에 평평한 부분들이 있는데 이 평평한 부분들은 그
라디언트가 0이 되다보니, 그라디언트가 사라지는 문제가 생겨 신경망을 학습하기가 정말 어려워 졌거든요.
활성화 함수 : 시그모이드
▪ 그러면 한번 시그모이드 함수에서 어떤 일들이 일어나는지 한번 살펴봅시다. X가 -10이나 -100같이 엄청 엄청 작은 값이라고 할께요,
그러면 시그모이드의 비선형성으로 아주 왼쪽 끝에있는 값이 나올거고, 로컬 그라디언트는 아주아주 0에 가까워질거에요. 이 말은 가
중치 갱신치도 0에 아주아주 가까워진다는 말이 됩니다. 왜냐면 로컬 그라디언트가 0이니까 업스트림 그라디언트를 받더라도 곱하면
0에 가까운 다운스트림 그라디언트가 만들어지니까요.
활성화 함수 : 시그모이드
▪ 이러한 로컬 그라디언트가 0에 가까워지는 현상떄문에 업스트림 그라디언트로 뭘 받던간에 다운스트림 그라디언트는 0에 가까운
값이 나올수 밖에 없고, 가중치 갱신치를 0에 가깝게 만든 만큼 가중치 행렬도 느리게 갱신되어 학습 과정 자체가 느려지게 만들어버
립니다.
활성화 함수 : 시그모이드
▪ 이건 또 동적 학습에서 문제를 발생시키는데, 100층 넘어가는 심층 신경망을 학습한다고 하면 이 활성화 함수 때문에 어느 계층에서
그라디언트가 죽어버릴거에요. 그러면 다른 층에서 그라디언트를 학습시키는데 필요한 신호가 사라지게 됩니다.
▪ 이 문제는 X가 아주 작은 값이 나오는 경우 뿐만이 아니라 아주 큰 값인 경우에도 생겨요. 시그모이드를 사용할때 X가 너무 크거나 작
은 경우 학습이 죽어버리고, 0에 가까운 경우/시그모이드가 선형적으로 증가하는 부분에서만 학습이 진행될수 있습니다.
활성화 함수 : 시그모이드
▪ 그래서 정리하자면 시그모이드 활성화 함수의 첫번째 가장 큰 문제는 이런 평평한 부분때문에 그라디언트가 죽어버리는 거에요.
활성화 함수 : 시그모이드
▪ 시그모이드 비선형성으로 인한 두번째 문제는 출력의 중간이 0이 되지 않는다는 점(영 중심 zero-centered)입니다. 보시다 시피 시그
모이드 함수의 출력은 모두 x축 위에 있다보니 무조건 양수인데, 왜 영 중심 성질을 가지지 못하는게 문제가 되는지 한번 생각해봅시
다.
활성화 함수 : 시그모이드
▪ 한번 뉴런의 입력이 항상 양수가 될때 문제가 되는지 생각해봅시다. 여기에 뉴런에 대한 그림이 있는데, 자세히 들여다 봅시다. 우선
우린 다층 신경망 구조를 만드는 중이고, 시그모이드 비선형성을 사용한다고 해요. 그러면 이 계층의 입력은 이전 층의 계산 결과에 시
그모이드가 적용되어 모든 x_i들은 항상 양수값이 되서 들어올거에요.
활성화 함수 : 시그모이드
▪ 그러면 모든 x_i가 입력으로 들어올때 양수라면 그라디언트가 어떻게 되는지 고민해 보면, 각 w_i에 대한 비용의 그라디언트는 로컬
그라디언트와 업스트림 그라디언트를 곱해서 구할건데, 로컬 그라디언트는 항상 양수가 될거에요. 왜냐면 w_i에 대한 로컬 그라디언
트는 x_i이며 모든 x_i는 양수이거든요.
활성화 함수 : 시그모이드
▪ 하지만 업스트림 그라디언트는 양수 혹은 음수인 스칼라 값인데, 업스트림 그라디언트가 양수인 경우 W_i에 대한 모든 비용의 그라
디언트들은 양수가 될거에요. 비슷하게 업스트림 그라디언트가 음수인 경우 W_i에 대한 비용의 그라디언트들은 음수가 되겠죠
활성화 함수 : 시그모이드
▪ 다시 말하면 W_i에 대한 모든 그라디언트들은 (업스트림 그라디언트와) 같은 부호를 가지게 되고, 신경망 학습에서 매우 나쁜 성질
이라고 할수 있어요. 예를 들면 이건 경사 하강 과정에서 이게 항상 모든 그라디언트를 양수나 음수로 제약시키다 보니 가중치가 우리
가 원하고자 하는 값에 도달하기 힘들어 지거든요.
활성화 함수 : 시그모이드
▪ 왜 이게 문제가되는지 오른쪽의 그림으로 한번 봅시다. 이 오른쪽 그림에서 w_1과 w_2를 가지고 있다고 해요. 그리고 가중치 w의 초
기 값이 있다고 할때 , 비용이 최소화 되도록 가중치 값을 조정시키기를 시키토록 원점에서 멀어지면서 오른쪽 바닥으로 쭉 떨어진다
고 할께요.
활성화 함수 : 시그모이드
▪ 여기서 여러 단계를 거칠건데 w_1를 따라 양의 단계, w_2을 따라 음의 단계루요. 하지만 이 제약 때문에 가중치에 대한 비용의 그라
디언트는 항상 같은 부호를 가지다보니, 경사 하강 과정에서 비용이 최소가 되는 방향으로 이상한 지그재그 패턴이 나오게 됩니다. 이
현상이 2 차원에서의 경우를 보면 그렇게 나빠보이지는 않지만, 가중치들이 많아져 수천 수백만 차원에서의 경우 이 성질은 아주 아
주 안좋은 결과를 만들어 낼 거에요.
활성화 함수 : 시그모이드
▪ D차원의 가중치 행렬이 있다고 하면 2^D 개의 아주 고차원 사분면들이 만들어 질거고 이 제약으로 인해 모든 그라디언트는 음수나
양수를 가지게 될거고 고차원 공간에서도 갱신 방향이 한 두가지 방향으로밖에 움직이게 될겁니다. 그래서 2차원에서도 이게 안좋아
보이는데 가중치 차원수가 많아진다면 지수적으로 더 안좋아지겠죠.
활성화 함수 : 시그모이드
▪ 이런 것들이 시그모이드 비선형성의 나쁜 성질들로 영 중심이 안되는 성질과 출력이 항상 양수로 만드는 성질은 학습 과정에서 매우
불안정하고 이상하게 움직이도록 할거에요. 제가 여기서 짚고 싶은건 가중치 그라디언트가 모드 양수 혹은 음수가 되는 하나의 예시
로 살펴봤고.
활성화 함수 : 시그모이드
▪ 하지만 실제로 쓸때 우리는 미니배치 경사 하강을 쓰는데, 미니 배치를 평균으로 계산하면 이 제약을 완화할수가 있어요. 왜냐면 각
각에 대한 그라디언트들이 모두 양수나 음수라고 해도 이들의 평균을 구하고, 미니 배치 단위로 합을 해나간다면 그라디언트가 그라
디언트들이 양수가 되기도 하고 음수가 되기도 하거든요. 그래서 실제로 사용할때는 이건 덜 문제가 되기도 합니다.
활성화 함수 : 시그모이드
▪ 그렇더라도 시그모이드 비선형성으로 인한 두번쨰 문제인 출력이 영 중심을 하지 못하는 성질을 잘 기억하고 있어야 해요.
활성화 함수 : 시그모이드
활성화 함수 : 시그모이드
▪ 시그모이드 비선형성의 세번쨰 문제는 이게 지수 함수라는 점이에요. 여러분들이 이 함수가 어떻게 구현되는지 이해하고있는지는
모르지만 지수 함수 같은건 아주 비용이 큰 함수에요 이건 매우 복잡한 초월 함수다보니 지수 함수를 계산하는데 아주 클럭사이클이
많이 필요하거든요.
▪ 그리고 제가 맥북 cpu로 자그만한 실험을 했었는데, 저는 시그모이드 비선형과 랠루 비선형성 연산 성능을 비교했는데 reLU가 3배
빠르게 종료되었습니다. ReLU는 임계 값으로 간단하게 뭉게버리거든요. 하지만 시그모이드는 매우 연산량이 많은 지수함수를 계산해
내야 하구요.
활성화 함수 : 시그모이드
▪ 그래서 제가 또 짚고 싶은건 이 세 번쨰 문제 지수적인 연산량은 모바일 장치나 CPU같은 장치들에서 사용하기에 문제가 되지. GPU
장치에서는 덜해요. 왜냐면 GPU 장치는 실제 비선형성을 계산하는 비용보다 전역 메모리와 GPU 계산 메모리들의 데이터의 이동 시간
적 비용이 더 많이 걸리거든요.
활성화 함수 : 시그모이드
▪ 그래서 실제로 여러분들이 GPU에서 여러 비선형 함수들의 시간을 측정해본다면 어쩌면 모두 같은 시간이 걸릴수도 있어요. 그래서
대신 이 비선형 함수들의 속도 차이를 비교하려면 다른 종류의 CPU를 사용해보는게 좋겠습니다. 그래서 시그모이드의 세가지 문제로
이런것들이 있겠습니다.
활성화 함수 : 시그모이드
▪ 하지만 제 생각에는 여기서 첫번째깨 다른 2번째 3번째것보다 가장 큰 문제라고 생각해요. 그리고 여러분도 과하게 활성된 뉴런에서
그라디언트를 죽이는 현상을 잘 알아야 하며 이게 시그모이드 비선형 함수의 가장 큰 문제가 되겠습니다.
활성화 함수 : 시그모이드
▪ 이제 시그모이드에서 넘어가서 다른 많이 사용되는 비선형 함수로 tanh 함수가 있습니다. tanh는 시그모이드 함수를 크기를 조정하
고/스케일링하고, 이동시킨/시프트한 시그모이드 버전이라고 할수 있어요. 논문에서 정의를 보면 시그모이드와 tanh는 지수적인 함
수로 정의되어 있어 시그모이드를 이동시키고 스케일링만 하면 구할수 있어요.
활성화 함수 : Tanh
▪ 그렇다보니 tanh도 시그모이드 비선형 함수와 같은 문제들을 가지고 있는데, 여전히 뉴런 포화에 따라 값이 크거나, 작을때 학습하
기가 힘들어져요 시그모이드 처럼. 하지만 시그모이드랑 다른점은 이건 영중심성을 가지고 있고 있죠. 몇가지 이유로 여러분들이 뉴
런 포화가 되는 비선형 함수를 써야할때 시그모이드 함수보다 tanH가 약간은 더 낫다고 생각해요. 하지만 포화 영역들때문에 이 함수
도 좋지 않습니다.
활성화 함수 : Tanh
▪ 이번에 볼 비선형 함수는 우리들의 좋은 친구인 ReLU 함수 Rectified Linear Activation Function입니다. 이 함수는 아주 좋은데, 아주 우
리랑 친숙하게 생겼고, 임계화를 하다보니 계산 비용도 적습니다. 이걸 이진화를 했다고 볼수 있겠느데 음수가 들어오면 0이 되고, 양
수가 들어오면 그대로 두죠. 그래서 ReLU는 가장 가벼운 비선형 함수라고 할수 있으며, 아주아주 빨라서 한사이클에 동작할수 있어요.
활성화 함수 : ReLU
▪ 그리고 이건 양수 영역에서 포화가 되지 않아 포화 문제가 생겨 그라디언트가 사라지는걸 걱정할 필요가 없어요. 실제로 같은 신경
망 아키텍처를 시그모이드를 사용한것과 tanH를 사용한거 ReLU를 사용한것들을 학습시켜보면 ReLU를 사용한 버전이 (알렉스 넷에서
6배정도) 아주아주 빠르게 수렴하게 되요. 50, 100층 넘어가는 아주 깊은 신경망에서 시그모이드 신경망을 배치 정규화 기법없이 수렴
시키는건 힘들죠.
활성화 함수 : ReLU
▪ 여전히 ReLU도 몇몇 문제들을 가지고 있어요. 문제들 중 하나는 ReLU도 시그모이드 처럼 영 중심성을 가지지 못한건데, 출력이 항상
양수이다 보니 출력이 음수가 나오지를 못해 시그모이드에서 있었던것 처럼 그라디언트가 모두 양수가 되거나 음수가 되는 문제점을
가지고 있습니다.
▪ 하지만 ReLU신경망은 이런 어려움 없이 학습을 할수 있는데, 영중심성을 가지고 있지 못한건 시그모이드에서 봤던 다른 중요한 문
제들보다 덜 중요하거든요.
활성화 함수 : ReLU
▪ ReLU의 가장 큰 문제는 X가 0보다 작아 그라디언트가 0이 되는 경우에요. X가 아주아주 크더라도 로컬 그라디언트가 1이 라 학습은
잘될거에요. 하지만 X가 아주 작으면 - 10이 라면, 로컬 그라디언트가 0이 되다보니 다운스트림 그라디언트는 0이 될겁니다. 이건 어떻
게 보면 시그모이드보다 더 나쁘다고 할수 있을거에요. 시그모이드에서는 아주 좁은 영역에서도 완전히 0이 되지는 않아 아주 작은
값을 가져 학습을 할수 있는 여지가 있었습니다.
활성화 함수 : ReLU
▪ 학습 하는 과정에서 ReLU함수에 어떤 일이 일어나는지 생각해봅시다. X가 아주아주 크더라도 로컬 그라디언트가 1이 라 학습은 잘
될거에요. 하지만 X가 아주 작으면 - 10이 라면, 로컬 그라디언트가 0이 되다보니 다운스트림 그라디언트는 0이 될겁니다. 이건 어떻게
보면 시그모이드보다 더 나쁘다고 할수 있을거에요. 시그모이드에서는 아주 좁은 영역에서도 완전히 0이 되지는 않아 아주 작은 값을
가져 학습을 할수 있는 여지가 있었습니다.
활성화 함수 : ReLU
▪ 한번 ReLU 비선형 함수가 있는데, 그 계층의 가중치들의 크기가 크지만 그 계층의 뉴런이 훈련 데이터셋의 모든 데이터에 대해 음의
활성을 가졌다고 가정 합시다. 그렇게 되면 전체 학습 데이터셋에 반복하더라도 가중치들은 항상 0인 그라디언트를 가지게 되어 그
ReLU는 죽은 ReLU가 되요. 이제 이 relu는 학습할수가 없거든요.
( Data Cloud 그림 이해하기 너무 힘들다..)
활성화 함수 : ReLU
▪ 그렇게 한번 ReLU가 막혀버리면 이후 가중치 갱신치는 항상 0을 받게 되고, 얼마나 오래 학습을 진행하던간에 데이터클라우드가
(위의 빨간 선, dead ReLu)림보에 막혀 밖으로 나가지 못할거에요. 이게 문제가 됩니다.
활성화 함수 : ReLU
▪ 반대로 한번 우리의 ReLU 함수가 데이터 클라우드의 일부를 항상 가로질러야 한다고 해볼깨요(녹색 Active ReLU). 이 넘어간 부분들
은 확성 ReLU로 이 부분은 그라디언트를 받고, 학습을 하게 될거에요. 제가 말하고 싶은건 이 문제는 여러분들의 뉴런에서, 활성 값이
음수인 경우에만 생기구요. 뿐만아니라 양의 활성을 하는 데이터는 가중치가 그라디언트를 가질것이고 학습하게 될거에요.
활성화 함수 : ReLU
▪ 제가 몇몇 사람들이 사용하는 한 트릭을 봤는데 많이 쓰이지는 않지만 이런 DeadReLU문제를 피할수 있는 방빕이 있어요. 이 방법은
편향을 사용해서 ReLU가 약간 더 양의 값을 가지도록 할수 있게 만드는 건데, 음수가 될 가능성을 줄여 ReLU가 죽는 상황을 줄여줍니
다.
활성화 함수 : ReLU
감사합니다

Mais conteúdo relacionado

Mais procurados

강화학습 알고리즘의 흐름도 Part 2
강화학습 알고리즘의 흐름도 Part 2강화학습 알고리즘의 흐름도 Part 2
강화학습 알고리즘의 흐름도 Part 2Dongmin Lee
 
오토인코더의 모든 것
오토인코더의 모든 것오토인코더의 모든 것
오토인코더의 모든 것NAVER Engineering
 
Deep Learning Interview Questions And Answers | AI & Deep Learning Interview ...
Deep Learning Interview Questions And Answers | AI & Deep Learning Interview ...Deep Learning Interview Questions And Answers | AI & Deep Learning Interview ...
Deep Learning Interview Questions And Answers | AI & Deep Learning Interview ...Simplilearn
 
Proximal Policy Optimization (Reinforcement Learning)
Proximal Policy Optimization (Reinforcement Learning)Proximal Policy Optimization (Reinforcement Learning)
Proximal Policy Optimization (Reinforcement Learning)Thom Lane
 
딥러닝의 기본
딥러닝의 기본딥러닝의 기본
딥러닝의 기본deepseaswjh
 
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)WON JOON YOO
 
Dueling Network Architectures for Deep Reinforcement Learning
Dueling Network Architectures for Deep Reinforcement LearningDueling Network Architectures for Deep Reinforcement Learning
Dueling Network Architectures for Deep Reinforcement LearningYoonho Lee
 
Vuejs를이용한서비스구축
Vuejs를이용한서비스구축Vuejs를이용한서비스구축
Vuejs를이용한서비스구축Dexter Jung
 
[study] pointer networks
[study] pointer networks[study] pointer networks
[study] pointer networksGyuhyeon Nam
 
텐서플로우 기초 이해하기
텐서플로우 기초 이해하기 텐서플로우 기초 이해하기
텐서플로우 기초 이해하기 Yong Joon Moon
 
配管流路の多目的最適化OpenFOAM+OpenMDAO(第28回オープンCAE勉強会@関西)
配管流路の多目的最適化OpenFOAM+OpenMDAO(第28回オープンCAE勉強会@関西)配管流路の多目的最適化OpenFOAM+OpenMDAO(第28回オープンCAE勉強会@関西)
配管流路の多目的最適化OpenFOAM+OpenMDAO(第28回オープンCAE勉強会@関西)TatsuyaKatayama
 
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016Taehoon Kim
 
Prediction of Exchange Rate Using Deep Neural Network
Prediction of Exchange Rate Using Deep Neural Network  Prediction of Exchange Rate Using Deep Neural Network
Prediction of Exchange Rate Using Deep Neural Network Tomoki Hayashi
 
Neural Networks with Google TensorFlow
Neural Networks with Google TensorFlowNeural Networks with Google TensorFlow
Neural Networks with Google TensorFlowDarshan Patel
 
인공신경망
인공신경망인공신경망
인공신경망종열 현
 
CNNとGAを用いた 組合せ最適化問題
CNNとGAを用いた 組合せ最適化問題CNNとGAを用いた 組合せ最適化問題
CNNとGAを用いた 組合せ最適化問題t dev
 
Deep sarsa, Deep Q-learning, DQN
Deep sarsa, Deep Q-learning, DQNDeep sarsa, Deep Q-learning, DQN
Deep sarsa, Deep Q-learning, DQNEuijin Jeong
 
텐서플로우로 배우는 딥러닝
텐서플로우로 배우는 딥러닝텐서플로우로 배우는 딥러닝
텐서플로우로 배우는 딥러닝찬웅 주
 

Mais procurados (20)

강화학습 알고리즘의 흐름도 Part 2
강화학습 알고리즘의 흐름도 Part 2강화학습 알고리즘의 흐름도 Part 2
강화학습 알고리즘의 흐름도 Part 2
 
오토인코더의 모든 것
오토인코더의 모든 것오토인코더의 모든 것
오토인코더의 모든 것
 
Deep Learning Interview Questions And Answers | AI & Deep Learning Interview ...
Deep Learning Interview Questions And Answers | AI & Deep Learning Interview ...Deep Learning Interview Questions And Answers | AI & Deep Learning Interview ...
Deep Learning Interview Questions And Answers | AI & Deep Learning Interview ...
 
Proximal Policy Optimization (Reinforcement Learning)
Proximal Policy Optimization (Reinforcement Learning)Proximal Policy Optimization (Reinforcement Learning)
Proximal Policy Optimization (Reinforcement Learning)
 
딥러닝의 기본
딥러닝의 기본딥러닝의 기본
딥러닝의 기본
 
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
 
Dueling Network Architectures for Deep Reinforcement Learning
Dueling Network Architectures for Deep Reinforcement LearningDueling Network Architectures for Deep Reinforcement Learning
Dueling Network Architectures for Deep Reinforcement Learning
 
Vuejs를이용한서비스구축
Vuejs를이용한서비스구축Vuejs를이용한서비스구축
Vuejs를이용한서비스구축
 
[study] pointer networks
[study] pointer networks[study] pointer networks
[study] pointer networks
 
Selenium
SeleniumSelenium
Selenium
 
텐서플로우 기초 이해하기
텐서플로우 기초 이해하기 텐서플로우 기초 이해하기
텐서플로우 기초 이해하기
 
配管流路の多目的最適化OpenFOAM+OpenMDAO(第28回オープンCAE勉強会@関西)
配管流路の多目的最適化OpenFOAM+OpenMDAO(第28回オープンCAE勉強会@関西)配管流路の多目的最適化OpenFOAM+OpenMDAO(第28回オープンCAE勉強会@関西)
配管流路の多目的最適化OpenFOAM+OpenMDAO(第28回オープンCAE勉強会@関西)
 
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
 
Prediction of Exchange Rate Using Deep Neural Network
Prediction of Exchange Rate Using Deep Neural Network  Prediction of Exchange Rate Using Deep Neural Network
Prediction of Exchange Rate Using Deep Neural Network
 
Neural Networks with Google TensorFlow
Neural Networks with Google TensorFlowNeural Networks with Google TensorFlow
Neural Networks with Google TensorFlow
 
인공신경망
인공신경망인공신경망
인공신경망
 
ddpg seminar
ddpg seminarddpg seminar
ddpg seminar
 
CNNとGAを用いた 組合せ最適化問題
CNNとGAを用いた 組合せ最適化問題CNNとGAを用いた 組合せ最適化問題
CNNとGAを用いた 組合せ最適化問題
 
Deep sarsa, Deep Q-learning, DQN
Deep sarsa, Deep Q-learning, DQNDeep sarsa, Deep Q-learning, DQN
Deep sarsa, Deep Q-learning, DQN
 
텐서플로우로 배우는 딥러닝
텐서플로우로 배우는 딥러닝텐서플로우로 배우는 딥러닝
텐서플로우로 배우는 딥러닝
 

Semelhante a [컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 1. 활성화 함수

[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리jdo
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNetjdo
 
[유쉘] 4.활성화 함수
[유쉘] 4.활성화 함수[유쉘] 4.활성화 함수
[유쉘] 4.활성화 함수lee yuseong
 
[컴퓨터비전과 인공지능] 6. 역전파 2
[컴퓨터비전과 인공지능] 6. 역전파 2[컴퓨터비전과 인공지능] 6. 역전파 2
[컴퓨터비전과 인공지능] 6. 역전파 2jdo
 
Survey of activation functions
Survey of activation functionsSurvey of activation functions
Survey of activation functions창기 문
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Othersjdo
 
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2jdo
 
Coursera Machine Learning (by Andrew Ng)_강의정리
Coursera Machine Learning (by Andrew Ng)_강의정리Coursera Machine Learning (by Andrew Ng)_강의정리
Coursera Machine Learning (by Andrew Ng)_강의정리SANG WON PARK
 
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1jdo
 
SAGAN_2024seminar announce_seoultech.pptx
SAGAN_2024seminar announce_seoultech.pptxSAGAN_2024seminar announce_seoultech.pptx
SAGAN_2024seminar announce_seoultech.pptxssuser4b2fe7
 
랩탑으로 tensorflow 도전하기 - tutorial
랩탑으로 tensorflow 도전하기 - tutorial랩탑으로 tensorflow 도전하기 - tutorial
랩탑으로 tensorflow 도전하기 - tutorialLee Seungeun
 
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)Lee Seungeun
 
중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직Hoyoung Choi
 
Effective c++ 3
Effective c++ 3Effective c++ 3
Effective c++ 3현찬 양
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷jdo
 
자바로 Mnist 구현하고_스프링웹서버붙이기
자바로 Mnist 구현하고_스프링웹서버붙이기자바로 Mnist 구현하고_스프링웹서버붙이기
자바로 Mnist 구현하고_스프링웹서버붙이기라한사 아
 
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기JungHyun Hong
 
03.basic nag removal header problems hangul
03.basic nag removal   header problems hangul03.basic nag removal   header problems hangul
03.basic nag removal header problems hangulre4lfl0w
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNetjdo
 

Semelhante a [컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 1. 활성화 함수 (20)

[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet
 
[유쉘] 4.활성화 함수
[유쉘] 4.활성화 함수[유쉘] 4.활성화 함수
[유쉘] 4.활성화 함수
 
[컴퓨터비전과 인공지능] 6. 역전파 2
[컴퓨터비전과 인공지능] 6. 역전파 2[컴퓨터비전과 인공지능] 6. 역전파 2
[컴퓨터비전과 인공지능] 6. 역전파 2
 
Survey of activation functions
Survey of activation functionsSurvey of activation functions
Survey of activation functions
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
 
Coursera Machine Learning (by Andrew Ng)_강의정리
Coursera Machine Learning (by Andrew Ng)_강의정리Coursera Machine Learning (by Andrew Ng)_강의정리
Coursera Machine Learning (by Andrew Ng)_강의정리
 
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
 
SAGAN_2024seminar announce_seoultech.pptx
SAGAN_2024seminar announce_seoultech.pptxSAGAN_2024seminar announce_seoultech.pptx
SAGAN_2024seminar announce_seoultech.pptx
 
랩탑으로 tensorflow 도전하기 - tutorial
랩탑으로 tensorflow 도전하기 - tutorial랩탑으로 tensorflow 도전하기 - tutorial
랩탑으로 tensorflow 도전하기 - tutorial
 
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)
 
Deep learning overview
Deep learning overviewDeep learning overview
Deep learning overview
 
중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직
 
Effective c++ 3
Effective c++ 3Effective c++ 3
Effective c++ 3
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷
 
자바로 Mnist 구현하고_스프링웹서버붙이기
자바로 Mnist 구현하고_스프링웹서버붙이기자바로 Mnist 구현하고_스프링웹서버붙이기
자바로 Mnist 구현하고_스프링웹서버붙이기
 
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기
 
03.basic nag removal header problems hangul
03.basic nag removal   header problems hangul03.basic nag removal   header problems hangul
03.basic nag removal header problems hangul
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
 

Mais de jdo

[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16jdo
 
[컴퓨터비전과 인공지능] 6. 역전파 1
[컴퓨터비전과 인공지능] 6. 역전파 1[컴퓨터비전과 인공지능] 6. 역전파 1
[컴퓨터비전과 인공지능] 6. 역전파 1jdo
 
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수jdo
 
[리트코드 문제 풀기] 연결 리스트
[리트코드 문제 풀기] 연결 리스트[리트코드 문제 풀기] 연결 리스트
[리트코드 문제 풀기] 연결 리스트jdo
 
[컴퓨터비전과 인공지능] 5. 신경망
[컴퓨터비전과 인공지능] 5. 신경망[컴퓨터비전과 인공지능] 5. 신경망
[컴퓨터비전과 인공지능] 5. 신경망jdo
 
[리트코드 문제 풀기] 배열
[리트코드 문제 풀기] 배열[리트코드 문제 풀기] 배열
[리트코드 문제 풀기] 배열jdo
 
[컴퓨터비전과 인공지능] 4. 최적화
[컴퓨터비전과 인공지능] 4. 최적화[컴퓨터비전과 인공지능] 4. 최적화
[컴퓨터비전과 인공지능] 4. 최적화jdo
 
[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제
[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제
[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제jdo
 
[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부
[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부
[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부jdo
 
Titanic kaggle competition
Titanic kaggle competitionTitanic kaggle competition
Titanic kaggle competitionjdo
 
1 2. 직선과 평면에서의 벡터 방정식
1 2. 직선과 평면에서의 벡터 방정식1 2. 직선과 평면에서의 벡터 방정식
1 2. 직선과 평면에서의 벡터 방정식jdo
 
1-1. 공학과 수학에서 벡터/ 내적 직교
1-1. 공학과 수학에서 벡터/ 내적 직교1-1. 공학과 수학에서 벡터/ 내적 직교
1-1. 공학과 수학에서 벡터/ 내적 직교jdo
 
소형 무인 비행체 5장-선형 모델 설계
 소형 무인 비행체 5장-선형 모델 설계 소형 무인 비행체 5장-선형 모델 설계
소형 무인 비행체 5장-선형 모델 설계jdo
 
소형 무인 비행체 4장-힘과 모멘트
소형 무인 비행체 4장-힘과 모멘트소형 무인 비행체 4장-힘과 모멘트
소형 무인 비행체 4장-힘과 모멘트jdo
 
소형 무인 비행체 3장-기구학과 동역학
소형 무인 비행체 3장-기구학과 동역학소형 무인 비행체 3장-기구학과 동역학
소형 무인 비행체 3장-기구학과 동역학jdo
 
소형 무인 비행체 2장-좌표계
소형 무인 비행체 2장-좌표계소형 무인 비행체 2장-좌표계
소형 무인 비행체 2장-좌표계jdo
 
소형 무인 비행기 1장-소개
소형 무인 비행기 1장-소개소형 무인 비행기 1장-소개
소형 무인 비행기 1장-소개jdo
 
소형 무인 비행기-서론
소형 무인 비행기-서론소형 무인 비행기-서론
소형 무인 비행기-서론jdo
 
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 번역jdo
 
Slam algorithms
Slam algorithmsSlam algorithms
Slam algorithmsjdo
 

Mais de jdo (20)

[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16
 
[컴퓨터비전과 인공지능] 6. 역전파 1
[컴퓨터비전과 인공지능] 6. 역전파 1[컴퓨터비전과 인공지능] 6. 역전파 1
[컴퓨터비전과 인공지능] 6. 역전파 1
 
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수
 
[리트코드 문제 풀기] 연결 리스트
[리트코드 문제 풀기] 연결 리스트[리트코드 문제 풀기] 연결 리스트
[리트코드 문제 풀기] 연결 리스트
 
[컴퓨터비전과 인공지능] 5. 신경망
[컴퓨터비전과 인공지능] 5. 신경망[컴퓨터비전과 인공지능] 5. 신경망
[컴퓨터비전과 인공지능] 5. 신경망
 
[리트코드 문제 풀기] 배열
[리트코드 문제 풀기] 배열[리트코드 문제 풀기] 배열
[리트코드 문제 풀기] 배열
 
[컴퓨터비전과 인공지능] 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
 

[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 1. 활성화 함수

  • 1. 도정찬 컴퓨터 비전을 위한 신경망 학습 파트 1 Training Neural Network Part 1 - 1. 활성화 함수 : Sigmoid, tanh, ReLU Michigan Online, Justin Johnson, Computer Vision, 2021. 02. 21
  • 2. 지난 시간 : 하드웨어와 소프트웨어 ▪ 이번 시간에는 10번쨰 강의. 강의가 두자릿수 번째 되서 정말 기쁩니다. 오늘은 여러가지 팁과 기법들에 대해서 이야기 할건데 여러 분들이 어떻게 실제 신경망을 학습시킬건지에 대해서 이야기해봅시다. 지난 시간에는 신경망 관련 하드웨어와 소프트웨어에 관해서 이야기 하면서 CPU와는 다른 종류의 하드웨어인 GPU와 TPU에 대해서 이야기하였습니다.
  • 3. 지난 시간 : 하드웨어와 소프트웨어 ▪ 또, 이런 신경망을 구현하는데 사용하는 소프트웨어 시스템, 프레임워크들에 대해서 이야기 했고, 특히 정적 그래프 static graph와 동 적 그래프 dynamic graph에 대해서도 다뤄봤습니다. 그리고 파이토치와 텐서 플로우의 길항관계 trade off에 대해서도 살펴봤었구요. 그래서 지금까지 본 모든 내용들이 신경망을 학습시키는데 알아야 해요. 하지만 신경망을 효율적으로 학습시키기 위해서 여전히 알 아야 할것들이 많이 있습니다.
  • 4. 개요 ▪ 그래서 저는 좀 나눠서 살펴보고 싶어요. 신경망 학습에 필요한 것들이 여러가지가 있는데, 여러분들이 신경망을 잘 학습하기 위해 서 알아야 하는 것들이요. 그래서 이런 것들을 세가지 카태고리로 나누어서 보겠습니다. 시작 단계 one time setup에서 알아야할 것이 한 가지인데, 여러분이 학습 과정을 시작하기 전에는 여러분은 활성화 함수나, 아키텍처 등 다양한 것들을 정해야 되겠죠.
  • 5. 개요 ▪ 다음으로 학습이 시작되고 나면 최적화 과정에서 해야할 것들이 있는데, 학습률 스케쥴링(학습률을 어떻게 바꿔나갈것인가)이나 학 습할 데이터 량을 늘릴수도 있을 거에요. ▪학습을 마치고 나면 여러분들의 신경망 맨 꼭대기에다가 추가적인 작업이 필요할수도 있어요. 예를들면 모델 앙상블을 시킨다거나 추가적인 학습을 할수도 있겠죠.
  • 6. 개요 ▪ 오늘이랑 다음주 강의에서는 실제로 어떻게 신경망을 학습해나가는지에 대해 자세히 알아보록 합시다.
  • 7. 활성화 함수 ▪ 오늘은 우선 활성화 함수에 대해 이야기하면서 시작해봅시다.
  • 8. ▪이전에 인공 뉴런에 대해 배웠던걸 떠올려보면 항상 활성화 함수를 가지고 있었어요. 우선 어떤 선형 함수가 있는데, 이전 계층의 뉴 런들로부터 입력들을 모아서 이들을 합했었죠. 합하는 값들은 입력과 가중치 행렬을 곱한것인데 이렇게 합 연산을 한 후에 비선형 활 성화 함수를 통과 했죠. 다음 계층으로 넘어가기 전에요. 활성화 함수들
  • 9. ▪ 그러면 신경망에 사용할수 잇는 몇가지 비선형적인 활성화 함수에 대해서 살펴봅시다. 이 함수들은 매우 중요한 역활을 하고 있어요 왜냐면 이 활성화 함수를 제거해버리면 모든 선형 연산들, 계층들이 합쳐져서 하나의 선형 계층이 되어버리거든요. 그래서 활성화 함 수가 있는게 우리가 신경망을 만들어나가는대 매우 중요하다고 배웠습니다. 활성화 함수들
  • 10. ▪ 그리고 이 활성화 함수로 쓸수있는게 엄청 다양하게 있어요. 하지만 지난번에 이 슬라이드에서 봤던 이런 활성화 함수에 대해서나 길항 관계에 대해서는 많이 이야기 하지는 않았엇죠. 그래서 저는 오늘 각각의 활성화 함수들의 장단점과 다른 고려사항들 신경망을 만드는데 어떤 활성화 함수를 고를지 같은 것들에 대해서 자세히 이야기 해봅시다. 활성화 함수들
  • 11. ▪ 수십년간 신경망 연구에서 사용되어온 가장 고전적인 활성화 함수 중 하나는 시그모이드 함수입니다. 이 시그모이드 활성화 함수는 이름이 왜이렇냐면 S자 커브 형태를 띄거든요. 이 함수는 가장 널리 사용되었었던 활성화 함수였는데, 이 결과를 확률로 이해할 수 있 었거든요. 활성화 함수 : 시그모이드
  • 12. ▪ 그래서 우리는 신경망에 대해서 볼때 각각의 뉴런들이 켜진건지 꺼졋는지 식으로 이해할수 있었고, 우리가 출력이 0과 1사이에 있는 값이 필요하거나 확률의 형태가 되기를 필요한 경우도 있었습니다. 그래서 결과를 확률로 나타내거나 참거짓으로 해석하는데 시그모 이드가 유용하였습니다. 활성화 함수 : 시그모이드
  • 13. ▪ 또 생물학적 뉴런이 신호를 받아 보내는 경우를 떠올린다면, 시그모이드의 결과를 뉴런의 활성률 firing rate로 볼수 있구요. 이 활성 률은 들어오는 신호에 비선형적으로 영향을 받다보니, 다시 말하면 출력이 비선형적이다보니 시그모이드 함수는 활성정도를 비선형 적으로 설계하기 위한 간단한 방법이었습니다. 활성화 함수 : 시그모이드
  • 14. ▪ 고전적으로 시그모이드 비선형성이 왜 널리 사용되었는지에 대해서 이런 이유들도 있지만, 실제로 이 비선형성이 좋지 않은 이유들 도 여러가지가 있습니다. 현실적인 문제중 하나는 이 활성화 함수의 맨 앞부분과 끝에 평평한 부분들이 있는데 이 평평한 부분들은 그 라디언트가 0이 되다보니, 그라디언트가 사라지는 문제가 생겨 신경망을 학습하기가 정말 어려워 졌거든요. 활성화 함수 : 시그모이드
  • 15. ▪ 그러면 한번 시그모이드 함수에서 어떤 일들이 일어나는지 한번 살펴봅시다. X가 -10이나 -100같이 엄청 엄청 작은 값이라고 할께요, 그러면 시그모이드의 비선형성으로 아주 왼쪽 끝에있는 값이 나올거고, 로컬 그라디언트는 아주아주 0에 가까워질거에요. 이 말은 가 중치 갱신치도 0에 아주아주 가까워진다는 말이 됩니다. 왜냐면 로컬 그라디언트가 0이니까 업스트림 그라디언트를 받더라도 곱하면 0에 가까운 다운스트림 그라디언트가 만들어지니까요. 활성화 함수 : 시그모이드
  • 16. ▪ 이러한 로컬 그라디언트가 0에 가까워지는 현상떄문에 업스트림 그라디언트로 뭘 받던간에 다운스트림 그라디언트는 0에 가까운 값이 나올수 밖에 없고, 가중치 갱신치를 0에 가깝게 만든 만큼 가중치 행렬도 느리게 갱신되어 학습 과정 자체가 느려지게 만들어버 립니다. 활성화 함수 : 시그모이드
  • 17. ▪ 이건 또 동적 학습에서 문제를 발생시키는데, 100층 넘어가는 심층 신경망을 학습한다고 하면 이 활성화 함수 때문에 어느 계층에서 그라디언트가 죽어버릴거에요. 그러면 다른 층에서 그라디언트를 학습시키는데 필요한 신호가 사라지게 됩니다. ▪ 이 문제는 X가 아주 작은 값이 나오는 경우 뿐만이 아니라 아주 큰 값인 경우에도 생겨요. 시그모이드를 사용할때 X가 너무 크거나 작 은 경우 학습이 죽어버리고, 0에 가까운 경우/시그모이드가 선형적으로 증가하는 부분에서만 학습이 진행될수 있습니다. 활성화 함수 : 시그모이드
  • 18. ▪ 그래서 정리하자면 시그모이드 활성화 함수의 첫번째 가장 큰 문제는 이런 평평한 부분때문에 그라디언트가 죽어버리는 거에요. 활성화 함수 : 시그모이드
  • 19. ▪ 시그모이드 비선형성으로 인한 두번째 문제는 출력의 중간이 0이 되지 않는다는 점(영 중심 zero-centered)입니다. 보시다 시피 시그 모이드 함수의 출력은 모두 x축 위에 있다보니 무조건 양수인데, 왜 영 중심 성질을 가지지 못하는게 문제가 되는지 한번 생각해봅시 다. 활성화 함수 : 시그모이드
  • 20. ▪ 한번 뉴런의 입력이 항상 양수가 될때 문제가 되는지 생각해봅시다. 여기에 뉴런에 대한 그림이 있는데, 자세히 들여다 봅시다. 우선 우린 다층 신경망 구조를 만드는 중이고, 시그모이드 비선형성을 사용한다고 해요. 그러면 이 계층의 입력은 이전 층의 계산 결과에 시 그모이드가 적용되어 모든 x_i들은 항상 양수값이 되서 들어올거에요. 활성화 함수 : 시그모이드
  • 21. ▪ 그러면 모든 x_i가 입력으로 들어올때 양수라면 그라디언트가 어떻게 되는지 고민해 보면, 각 w_i에 대한 비용의 그라디언트는 로컬 그라디언트와 업스트림 그라디언트를 곱해서 구할건데, 로컬 그라디언트는 항상 양수가 될거에요. 왜냐면 w_i에 대한 로컬 그라디언 트는 x_i이며 모든 x_i는 양수이거든요. 활성화 함수 : 시그모이드
  • 22. ▪ 하지만 업스트림 그라디언트는 양수 혹은 음수인 스칼라 값인데, 업스트림 그라디언트가 양수인 경우 W_i에 대한 모든 비용의 그라 디언트들은 양수가 될거에요. 비슷하게 업스트림 그라디언트가 음수인 경우 W_i에 대한 비용의 그라디언트들은 음수가 되겠죠 활성화 함수 : 시그모이드
  • 23. ▪ 다시 말하면 W_i에 대한 모든 그라디언트들은 (업스트림 그라디언트와) 같은 부호를 가지게 되고, 신경망 학습에서 매우 나쁜 성질 이라고 할수 있어요. 예를 들면 이건 경사 하강 과정에서 이게 항상 모든 그라디언트를 양수나 음수로 제약시키다 보니 가중치가 우리 가 원하고자 하는 값에 도달하기 힘들어 지거든요. 활성화 함수 : 시그모이드
  • 24. ▪ 왜 이게 문제가되는지 오른쪽의 그림으로 한번 봅시다. 이 오른쪽 그림에서 w_1과 w_2를 가지고 있다고 해요. 그리고 가중치 w의 초 기 값이 있다고 할때 , 비용이 최소화 되도록 가중치 값을 조정시키기를 시키토록 원점에서 멀어지면서 오른쪽 바닥으로 쭉 떨어진다 고 할께요. 활성화 함수 : 시그모이드
  • 25. ▪ 여기서 여러 단계를 거칠건데 w_1를 따라 양의 단계, w_2을 따라 음의 단계루요. 하지만 이 제약 때문에 가중치에 대한 비용의 그라 디언트는 항상 같은 부호를 가지다보니, 경사 하강 과정에서 비용이 최소가 되는 방향으로 이상한 지그재그 패턴이 나오게 됩니다. 이 현상이 2 차원에서의 경우를 보면 그렇게 나빠보이지는 않지만, 가중치들이 많아져 수천 수백만 차원에서의 경우 이 성질은 아주 아 주 안좋은 결과를 만들어 낼 거에요. 활성화 함수 : 시그모이드
  • 26. ▪ D차원의 가중치 행렬이 있다고 하면 2^D 개의 아주 고차원 사분면들이 만들어 질거고 이 제약으로 인해 모든 그라디언트는 음수나 양수를 가지게 될거고 고차원 공간에서도 갱신 방향이 한 두가지 방향으로밖에 움직이게 될겁니다. 그래서 2차원에서도 이게 안좋아 보이는데 가중치 차원수가 많아진다면 지수적으로 더 안좋아지겠죠. 활성화 함수 : 시그모이드
  • 27. ▪ 이런 것들이 시그모이드 비선형성의 나쁜 성질들로 영 중심이 안되는 성질과 출력이 항상 양수로 만드는 성질은 학습 과정에서 매우 불안정하고 이상하게 움직이도록 할거에요. 제가 여기서 짚고 싶은건 가중치 그라디언트가 모드 양수 혹은 음수가 되는 하나의 예시 로 살펴봤고. 활성화 함수 : 시그모이드
  • 28. ▪ 하지만 실제로 쓸때 우리는 미니배치 경사 하강을 쓰는데, 미니 배치를 평균으로 계산하면 이 제약을 완화할수가 있어요. 왜냐면 각 각에 대한 그라디언트들이 모두 양수나 음수라고 해도 이들의 평균을 구하고, 미니 배치 단위로 합을 해나간다면 그라디언트가 그라 디언트들이 양수가 되기도 하고 음수가 되기도 하거든요. 그래서 실제로 사용할때는 이건 덜 문제가 되기도 합니다. 활성화 함수 : 시그모이드
  • 29. ▪ 그렇더라도 시그모이드 비선형성으로 인한 두번쨰 문제인 출력이 영 중심을 하지 못하는 성질을 잘 기억하고 있어야 해요. 활성화 함수 : 시그모이드
  • 30. 활성화 함수 : 시그모이드 ▪ 시그모이드 비선형성의 세번쨰 문제는 이게 지수 함수라는 점이에요. 여러분들이 이 함수가 어떻게 구현되는지 이해하고있는지는 모르지만 지수 함수 같은건 아주 비용이 큰 함수에요 이건 매우 복잡한 초월 함수다보니 지수 함수를 계산하는데 아주 클럭사이클이 많이 필요하거든요.
  • 31. ▪ 그리고 제가 맥북 cpu로 자그만한 실험을 했었는데, 저는 시그모이드 비선형과 랠루 비선형성 연산 성능을 비교했는데 reLU가 3배 빠르게 종료되었습니다. ReLU는 임계 값으로 간단하게 뭉게버리거든요. 하지만 시그모이드는 매우 연산량이 많은 지수함수를 계산해 내야 하구요. 활성화 함수 : 시그모이드
  • 32. ▪ 그래서 제가 또 짚고 싶은건 이 세 번쨰 문제 지수적인 연산량은 모바일 장치나 CPU같은 장치들에서 사용하기에 문제가 되지. GPU 장치에서는 덜해요. 왜냐면 GPU 장치는 실제 비선형성을 계산하는 비용보다 전역 메모리와 GPU 계산 메모리들의 데이터의 이동 시간 적 비용이 더 많이 걸리거든요. 활성화 함수 : 시그모이드
  • 33. ▪ 그래서 실제로 여러분들이 GPU에서 여러 비선형 함수들의 시간을 측정해본다면 어쩌면 모두 같은 시간이 걸릴수도 있어요. 그래서 대신 이 비선형 함수들의 속도 차이를 비교하려면 다른 종류의 CPU를 사용해보는게 좋겠습니다. 그래서 시그모이드의 세가지 문제로 이런것들이 있겠습니다. 활성화 함수 : 시그모이드
  • 34. ▪ 하지만 제 생각에는 여기서 첫번째깨 다른 2번째 3번째것보다 가장 큰 문제라고 생각해요. 그리고 여러분도 과하게 활성된 뉴런에서 그라디언트를 죽이는 현상을 잘 알아야 하며 이게 시그모이드 비선형 함수의 가장 큰 문제가 되겠습니다. 활성화 함수 : 시그모이드
  • 35. ▪ 이제 시그모이드에서 넘어가서 다른 많이 사용되는 비선형 함수로 tanh 함수가 있습니다. tanh는 시그모이드 함수를 크기를 조정하 고/스케일링하고, 이동시킨/시프트한 시그모이드 버전이라고 할수 있어요. 논문에서 정의를 보면 시그모이드와 tanh는 지수적인 함 수로 정의되어 있어 시그모이드를 이동시키고 스케일링만 하면 구할수 있어요. 활성화 함수 : Tanh
  • 36. ▪ 그렇다보니 tanh도 시그모이드 비선형 함수와 같은 문제들을 가지고 있는데, 여전히 뉴런 포화에 따라 값이 크거나, 작을때 학습하 기가 힘들어져요 시그모이드 처럼. 하지만 시그모이드랑 다른점은 이건 영중심성을 가지고 있고 있죠. 몇가지 이유로 여러분들이 뉴 런 포화가 되는 비선형 함수를 써야할때 시그모이드 함수보다 tanH가 약간은 더 낫다고 생각해요. 하지만 포화 영역들때문에 이 함수 도 좋지 않습니다. 활성화 함수 : Tanh
  • 37. ▪ 이번에 볼 비선형 함수는 우리들의 좋은 친구인 ReLU 함수 Rectified Linear Activation Function입니다. 이 함수는 아주 좋은데, 아주 우 리랑 친숙하게 생겼고, 임계화를 하다보니 계산 비용도 적습니다. 이걸 이진화를 했다고 볼수 있겠느데 음수가 들어오면 0이 되고, 양 수가 들어오면 그대로 두죠. 그래서 ReLU는 가장 가벼운 비선형 함수라고 할수 있으며, 아주아주 빨라서 한사이클에 동작할수 있어요. 활성화 함수 : ReLU
  • 38. ▪ 그리고 이건 양수 영역에서 포화가 되지 않아 포화 문제가 생겨 그라디언트가 사라지는걸 걱정할 필요가 없어요. 실제로 같은 신경 망 아키텍처를 시그모이드를 사용한것과 tanH를 사용한거 ReLU를 사용한것들을 학습시켜보면 ReLU를 사용한 버전이 (알렉스 넷에서 6배정도) 아주아주 빠르게 수렴하게 되요. 50, 100층 넘어가는 아주 깊은 신경망에서 시그모이드 신경망을 배치 정규화 기법없이 수렴 시키는건 힘들죠. 활성화 함수 : ReLU
  • 39. ▪ 여전히 ReLU도 몇몇 문제들을 가지고 있어요. 문제들 중 하나는 ReLU도 시그모이드 처럼 영 중심성을 가지지 못한건데, 출력이 항상 양수이다 보니 출력이 음수가 나오지를 못해 시그모이드에서 있었던것 처럼 그라디언트가 모두 양수가 되거나 음수가 되는 문제점을 가지고 있습니다. ▪ 하지만 ReLU신경망은 이런 어려움 없이 학습을 할수 있는데, 영중심성을 가지고 있지 못한건 시그모이드에서 봤던 다른 중요한 문 제들보다 덜 중요하거든요. 활성화 함수 : ReLU
  • 40. ▪ ReLU의 가장 큰 문제는 X가 0보다 작아 그라디언트가 0이 되는 경우에요. X가 아주아주 크더라도 로컬 그라디언트가 1이 라 학습은 잘될거에요. 하지만 X가 아주 작으면 - 10이 라면, 로컬 그라디언트가 0이 되다보니 다운스트림 그라디언트는 0이 될겁니다. 이건 어떻 게 보면 시그모이드보다 더 나쁘다고 할수 있을거에요. 시그모이드에서는 아주 좁은 영역에서도 완전히 0이 되지는 않아 아주 작은 값을 가져 학습을 할수 있는 여지가 있었습니다. 활성화 함수 : ReLU
  • 41. ▪ 학습 하는 과정에서 ReLU함수에 어떤 일이 일어나는지 생각해봅시다. X가 아주아주 크더라도 로컬 그라디언트가 1이 라 학습은 잘 될거에요. 하지만 X가 아주 작으면 - 10이 라면, 로컬 그라디언트가 0이 되다보니 다운스트림 그라디언트는 0이 될겁니다. 이건 어떻게 보면 시그모이드보다 더 나쁘다고 할수 있을거에요. 시그모이드에서는 아주 좁은 영역에서도 완전히 0이 되지는 않아 아주 작은 값을 가져 학습을 할수 있는 여지가 있었습니다. 활성화 함수 : ReLU
  • 42. ▪ 한번 ReLU 비선형 함수가 있는데, 그 계층의 가중치들의 크기가 크지만 그 계층의 뉴런이 훈련 데이터셋의 모든 데이터에 대해 음의 활성을 가졌다고 가정 합시다. 그렇게 되면 전체 학습 데이터셋에 반복하더라도 가중치들은 항상 0인 그라디언트를 가지게 되어 그 ReLU는 죽은 ReLU가 되요. 이제 이 relu는 학습할수가 없거든요. ( Data Cloud 그림 이해하기 너무 힘들다..) 활성화 함수 : ReLU
  • 43. ▪ 그렇게 한번 ReLU가 막혀버리면 이후 가중치 갱신치는 항상 0을 받게 되고, 얼마나 오래 학습을 진행하던간에 데이터클라우드가 (위의 빨간 선, dead ReLu)림보에 막혀 밖으로 나가지 못할거에요. 이게 문제가 됩니다. 활성화 함수 : ReLU
  • 44. ▪ 반대로 한번 우리의 ReLU 함수가 데이터 클라우드의 일부를 항상 가로질러야 한다고 해볼깨요(녹색 Active ReLU). 이 넘어간 부분들 은 확성 ReLU로 이 부분은 그라디언트를 받고, 학습을 하게 될거에요. 제가 말하고 싶은건 이 문제는 여러분들의 뉴런에서, 활성 값이 음수인 경우에만 생기구요. 뿐만아니라 양의 활성을 하는 데이터는 가중치가 그라디언트를 가질것이고 학습하게 될거에요. 활성화 함수 : ReLU
  • 45. ▪ 제가 몇몇 사람들이 사용하는 한 트릭을 봤는데 많이 쓰이지는 않지만 이런 DeadReLU문제를 피할수 있는 방빕이 있어요. 이 방법은 편향을 사용해서 ReLU가 약간 더 양의 값을 가지도록 할수 있게 만드는 건데, 음수가 될 가능성을 줄여 ReLU가 죽는 상황을 줄여줍니 다. 활성화 함수 : ReLU