SlideShare a Scribd company logo
1 of 36
Download to read offline
도정찬
컴퓨터 비전을 위한 신경망 학습 파트 1
Training Neural Network Part 1
- 2. 활성화 함수와 데이터 전처리
Michigan Online, Justin Johnson, Computer Vision, 2021. 02. 21
▪ 지금까지 ReLU에 관한 두가지 문제 음수인 경우 그라디언트가 0이 되는 문제와 영 중심을 가지지 않는다는 점을 보았구요. 이를 보
완하는 방법으로 제안된게 Leaky ReLU가 있습니다. 이 방법은 이 문제를 둘다 풀수 있어요. Leaky ReLU는 ReLU처럼 단순한데 다른점이
라면 음수 부분에서 아주 작은 양의 상수를 곱해서 0이 되는걸 막아줘요. 그러면 Leaky ReLU의 음의 영역은 아주 작은 양의 기울기를
가지게 됩니다.
활성화 함수 : Leaky ReLU
▪ 이걸로 어떤 것들을 생각해볼수 있을까요. ReLU처럼 완전히 0은 아니고 정보 일부가 새어나간다고 볼수 있을겁니다. 하지만 음의 영
역에 있는 아주 약간의 정보일거에요. 위를 보면 leaky relu의 음의영역은 0.01의 기울기를 가지고 있는데 이 값은 하이퍼파라미터로 필
요하다면 조정할수 있어요. 이런 leaky relu의 장점 덕분에 양의 영역에서도 포화되지 않고, 효율적으로 계산할 수 있습니다. 그리고
relu나 시그모이드랑은 다르게 로컬 그라디언트가 0이 될 일이 없으니 그라디언트가 죽는것도 없어요.
활성화 함수 : Leaky ReLU
▪ 정리하자면 leaky relu는 relu가 음의 영역에서 죽어버리는 문제가 생기지 않고 약간의 그라디언트를 받을수 있고, 계속 학습을 시켜
나갈수 있겠습니다. 하지만 이 leaky relu에서 짜증나는 점은 0.01이라는 이 하이퍼파라미터 값은 우리가 설정해야하는 값이고, 우리가
선형 분류기기에 대한 첫번째 과제를 하면서 경험했다시피 하이퍼 파라미터가 많아지면서, 모델을 학습하기가 더 힘들어 지겠죠. 이
런 하이퍼파라미터를 볼떄마다 여러분이 해야할 일은 특정값을 사용하기 보다는 학습을 통해서 찾아내야 될거에요.
활성화 함수 : Leaky ReLU
▪ 이게 모수적으로 고친건데, 음의 영역에서 기울기가 신경망에서 학습가능한 파라미터가 되었나는 점을 빼면 leaky relu와 비슷해요.
비선형 함수가 학습 가능한 파라미터를 가지게 되었다는건 웃길수도 있긴하지만, 역전파 과정에서 이 알파에 대한 비용의 그라디언
트를 계산할 것이고 경사 하강 과정을 거칠수 있을거에요. 이렇게 구한 알파 값은 상수값이 될수도 있고, 합성곱 계층의 값들이나 완전
연결계층의 출력을 나누는 값으로 사용될수 있을겁니다.
활성화 함수 : Leaky ReLU
▪ 여러분들은 이걸 사용하는 사람들을 앞으로 종종 볼거에요. 하지만 이런 종류의 relu 함수들의 한가지 문제점은 0인 지점에서 미분
을 할수 없게 되는데, 입력이 0일때 어떤일이 생기는지 궁금할수 있겠지만, 그런 경우는 매우 드물다보니까 어떤 값을 가지던간에 보
통 잘 동작합니다.
-> x가 0인 경우 미분을 할수 없게 되는데 +방향에서 왔을때 미분치 1, -방향에서 왔을때 미분치 alpha 둘중 어느걸 사용해도 상관없다?
로 이해된다.
활성화 함수 : Leaky ReLU
▪ 조금 더 이론적인 내용들을 활용해서 지수 선형 유닛 Exponential Linear Unit을 사용할 때도 있어요. 이거는 ReLU함수가 가지는 문제
들을 개선하기 위해서 나온건데 부드럽고, 0을 중심으로하는 경향이 더 있죠. 이 지수 선형 유닛의 수학적인 정의는 슬라이드 아래에
서 볼수 있는데, 양의 영역에서는 항등함수가 되지만 음의 영역에서는 지수적인 값을 계산해서 시그모이드의 꼬리 같은 형태처럼 되
어요.
활성화 함수 : 지수 선형 유닛 ELU
▪ 그렇다보니 마이너스 부분에서 직선이 아니라 왼쪽에서 점진적으로 증가하다보니, 일반 relu에서 있었던 영 그라디언트 문제를 피
할수가 있게 되었습니다. 음의 영역이 0이 되는걸 피했으니 올바르게 고쳤다고 할수 있을거에요. 이 비선형 함수는 영을 중심으로하
는 출력 값을 만들 수 있고, 논문에서 이에 대한 내용들이 잘 나와 있어요.
활성화 함수 : 지수 선형 유닛 ELU
▪ 하지만 계산 과정에서 지수 함수가 있다보니 좋지 않고, alpha라고 하는 하이퍼 파라미터가 추가되다보니 학습을 시킬수도 있겠지만
지정해주는게 좋을거에요. 지금 본 ELU나 PReLU는 저는 지금까지 실제로 이걸 쓰는 사람을 본적이 없어요. 하지만 여러분들이 이걸 시
도해보고 논문 쓸지 모르죠.
활성화 함수 : 지수 선형 유닛 ELU
▪ 여기서 끝나찌 끝나지 않고 다른 논문들도 있는데 사람들이 정말 뭔가 제안하기를 좋아해요. 제가 하고싶은 말은 이런 아이디어가
있을때 비선형 함수에 대한? 이건 신경망의아주 작은 부분인데 여러분들이 새로운걸 찾아내서 실험을 해보면서, 새로운 비선형 함수
로 신경망을 바꾸면 많은 사람들에게 관심을 받을 수 있을 겁니다.
활성화 함수 : 지수 선형 유닛 ELU
▪ 이번에 우리가 볼거는 SELU라고 하는 Scaled Exponential Linear 활성화 합수입니다. 이거는 이전 슬라이드에서 본 ELU의 스케일을 조
정한 버전이란 점에서 다른부분은 alpha와 lambda를 이렇게 긴 상수로 지정하고 있어요. 이렇게 하는 이유는 딥러닝으로 학습시켜서
구하기보다 알파와 람다를 지정하면 SELU 비선형함수가 스스로를 정규화 self normalizing시키는 성질을 가지게 되거든요.
활성화 함수 : 조정된 지수 선형 유닛 SELU
▪ 여러분들의 신경망 계층들이 무한대로 깊어지더라도 활성화 함수가 잘 동작해서 (신경망이 무한하게 깊어지더라도) 유한한 값으로
수렴할 수 있어요. 다시 말하자면 신경망이 엄청 깊어지더라도 SELU 비선형 함수를 사용한 아주 깊은 신경망은 배치 정규화나 다른 정
규화 기법 없이도 깊은 신경망을 학습할수 있다고 할수 있겠습니다.
활성화 함수 : 조정된 지수 선형 유닛 SELU
▪ 아쉽지만 이게 왜 사실인지 확인하려면 부록에 있는 91페이지짜리 수식들을 가지고 봐야하는데, 인내심을 가지고 할수 있으면 한번
봐도 될거같아요.
활성화 함수 : 조정된 지수 선형 유닛 SELU
▪ 하지만 제가 지금까지 본 수 많은 활성화 함수들에 대해서 더 중요하다고 생각하는점은 실제 이 함수들의 성능은 그렇게 크게 차이
가 나지는 않아요. 여기보면 여러 논문에서 가져온 성능에 관한 그래프가 있는데, cifar-10 데이터셋을 사용할때 서로 다른 비선형 함
수들을 사용한 신경망 아키텍처에서 성능을 보여주고 있어요.
활성화 함수 : 조정된 지수 선형 유닛 SELU
▪ 여러분이 이 그래프를 보면 다른 막대들보다 가장 높은 활성화 함수들을 볼수 있을건데, 이그림에서 가장 중요한 건 이들이 얼마나
가까이 있는지를 봐야 해요. ResNet에서 ReLU가 93.8, leaky ReLu 94.2, softplus는 94.6이죠. 하지만 이런 활성화 함수들이 다른 신경망
아키텍처에서도 일관된 (순위) 추세를 보이지는 않는데, GELU라고 부르는 함수나 Swish 비선형 함수를 보면 ReLU보다 조금 더 좋은 성
능을 보이지만, DenseNet의 경우 ReLU가 약간 더 좋은 성능을 보이고 있어요.
활성화 함수 : 조정된 지수 선형 유닛 SELU
▪ 하지만 이런 비선형 함수들을 다룰때 실제로 중요한건 이런 성능에 대해서 너무 스트레스받지마세요. 시그모이드나 tanh를 고르지
않는 이상 이런 현대적인 비선형 함수들이 대부분 잘 동작하거든요. 비선형 함수에 의해 최종 정확도가 1, 2%정도 변하는 문제가 있을
수도 있기는한데 이건 데이터셋이나 신경망 아키텍처, 그리고 다른 하이퍼파라미터를 어떻게 선택하느냐에 달린 문제에요.
활성화 함수 : 조정된 지수 선형 유닛 SELU
▪ 아쉽지만 이게 왜 사실인지 확인하려면 부록에 있는 91페이지짜리 수식들을 가지고 봐야하는데, 인내심을 가지고 할수 있으면 한번
봐도 될거같아요.
활성화 함수 : 조정된 지수 선형 유닛 SELU
▪ 제가 추천하고싶은건 활성화 함수를 고르는것때문에 너무 스트래스받지 말고 그냥 ReLU를 사용해도 잘 동작할거에요 (아마도). 만
약 여러분들이 최종 성능 퍼센트를 줄여야 하는 상황이라면 다른 비선형 함수로 바꿔가면서도 실험해야 되겠죠. leaky relu나 selu, gelu
같은 함수들을 사용해보면 좋을거에요. 하지만 너무 큰 기대를 하지 말고, 시그모이드나 tanh는 신경망이 수렴하지도 않을거고 최악
의 방법이니 사용하지 마세요. 활성화 함수에 대해서 정리하자면 이렇게 요약할수 있겠습니다.
활성화 함수 : 정리
▪ 질문이 들어왔는데, 이런 모든 활성화 함수는 단조롭게 monotonic 증가해요. 그런데 왜 sine이나 cosine 같은 함수들을 사용하지 않을
까요? 제가 사실 약간 거짓말을 한게 GELU 비선형 함수는 제가 제대로 얘기를 하지 않았지만 비단조적입니다/단순하게 증가하지 않
습니다. 그런데 만약 우리가 사용하는 활성화 함수가 비단조적이라면 사인이나 코사인같은 거라면, 값이 증가하거나 감소하는 과정
에서 여러개의 X가 같은 Y를 가지는 경우가 생기게되는데 이게 학습 과정에서 문제가 될 수 있어요.
활성화 함수 : 정리
▪ 왜냐면 활성화 함수가 역변환이 될수없다보니 일부 정보를 잃어버리거든요. 우리가 처음에 활성화 함수를 사용했던 이유는 계산을
간단하게 할 뿐만이아니라 시스템에 비선형성을 추가하기 위함이었었죠. 저는 sine 함수나 cosine함수로 학습하려고 했던 사람들을
보기는 했는데 여러분들이 배치 정규화를 쓴다면 학습을 할수야 있긴하지만 그렇게 추천하지는 않아요.
활성화 함수 : 정리
▪ GELU 비선형 함수는 조금 신기한 방법인데 이걸 이해하려면 논문을 읽어봐야되요. 개념은 활성화 함수를 비단조적으로 해서 규제
처럼 동작을 하도록 만들어요. 이 방법은 이후에 다룰 드롭 아웃이랑 같이 사용하는데 일반적으로 이 방법은 잘 사용되지 않고, 대부분
의 경우 활성화 함수로 단조로운 것들을 사용해요.
활성화 함수 : 정리
▪ 이번에는 데이터 전처리에 대해서 살펴봅시다. 아마 여러분들이 과제 하면서 노트북에서 한건데, 스타터 코드를 읽어보고 데이터
로드 코드를 쓰면서 과제 시작 단계에서 하던 작업을 데이터 전처리라고 부릅니다. 기본 아이디어는 신경망에다가 데이터를 넣기 전
에 더 효율적으로 학습할수 있도록 고치는거에요.
데이터 전처리
▪ 여기에 그림을 보면 훈련 데이터셋을 나타내는 데이터 클라우드가 왼쪽 그래프의 빨간색으로 나오고 있는데, X하고 Y는 이 데이터의
특징들이에요. 여러분들이 이 이미지를 볼때 원본 데이터는 아주 길고, 얇은데다가 중심으로부터 떨어져 있는걸 볼수 있어요. 이걸 이
미지라고 생각한다면 이미지 데이터는 일반적으로 0 ~ 255 사이 픽셀 값으로 저장되죠. 이걸 이미지 데이터에 대한 데이터클라우드의
분포가 원점에서 떨어져 있다고 볼수 있어요.
데이터 전처리
▪ 그래서 우린 이걸 표준화를 해야하는데, 데이터셋의 평균으로 빼서 원점으로 이동시키고, 각 원소들을 전체 합하고 각 특징축으로
리스케일 시키켜야하는데, 표준 편차로 나눠주면 되요. 그러면 두 특징 축에 대해서 데이터들은 평균과 분산이 0, 1로 똑같이 됩니다.
데이터 전처리
▪ 왜 이런 전처리 과정을 하는지 이전에 얘기했던걸 되돌아 보면, 이건 시그모이드 비선형 함수의 편향 문제와 관련이 되어있는데 시
그모이드 함수는 모든 입력에 대해 출력 값이 양수가 되었었고, 모든 그라디언트의 방향이 양의 방향이되거나 음의 방향으로 갔었죠.
이것과 비슷한 현상이 훈련 데이터셋이 모두 양수인 경우에도 일어나, 모든 가중치 갱신치들이 하나의 부호로 제약이 되요. 이 문제는
신경망에 입력으로 넣기 전에 크기를 재조정해서/리스케일링으로 쉽게 고칠수가 있어요.
데이터 전처리
▪ 이미지 데이터의 경우 흔하게 전체 데이터에서 평균을 뺴고 표준 편차로 나누는 방법을 많이 사용합니다. 이미지가 아닌 다른 데이
터의 경우 다른 전처리 과정을 사용할 수 있어요.
데이터 전처리
▪ 디코릴레이션 decorrelation과 화이트닝 이라는 방법을 볼 수 있는데, 우리가 가지고 있는 훈련 데이터의 공분사 sgodfuf을 계산해서
이걸로 데이터 클라우드를 회전시킬수가 있어요. 그러면 그 특징은 상관관계를 잃어버려 슬라이드 중간의 녹색 데이터클라우드처럼
되요. 우리는 지금까지 입력 클라우드를 원점으로 이동시키고 회전시켰습니다.
데이터 전처리
▪ 이걸 참고해서 입력을 바로 평균이 0, 분산이 1이 되도록 만드는게 아니라 디코릴레이션을 하고 난 뒤에 정규화를 수행할 수도 있어
요. 그렇게 하고나면 데이터 클라우드는 맨 오른쪽에 파란색으로 좌표계의 중심에서 잘그려진 원형 형태로 만들어져 볼수 있어요. 이
정규화 과정을 입력 데이터를 이쁘게 만들다보니 화이트닝 whitening이라고 부르며, 저차원 입력 데이터를 사용하는 문제에서 자주
사용해요. 하지만 이미지 데이터의 경우에는 자주 사용되지는 않습니다.
데이터 전처리
▪ 왜 이미지 전처리를 하는지 알기위해서 다른 관점에서 보자면 선형 분류기를 학습시키려고 할때, 비표준화된 데이터와 표준화된 데
이터에 어떤 일이 일어났는지 생각해보면 도움이 됩니다. 여기서 왼쪽 그림을 보면 데이터 클라우드가 원점으로 부터 멀리 떨어져 있
는데 우리는 파란 클래스와 빨간 클래스로 분할하는 선형 분류기를 찾고자 해요.
데이터 전처리
▪ 우리가 가중치 행렬을 작은 임의의 수로 초기화를 시키면 (이전에 했던거 처럼), 선형 분류기로 학습시키고자하는 결정 경계가 아마
원점 근처를 지나갈 거에요. 한번 우리가 가진 데이터 클라우드가 원점으로부터 아주아주 멀리 떨어져 있다면 가중치 행렬의 값이 약
간 변하더라도 결정 경계는 아주 급격하게 변하게 될거에요.(데이터가 가까우면 결정경계가 조금만 이동하지만, 멀다보니 크게이동)
데이터 전처리
▪ 정리하자면 데이터가 정규화 되지 않은 경우, 하기 전에 가중치 행렬이 약간만 변하더라도 시스템의 분류 성능을 크게 바꿀수 있게
되므로 최적화 문제가 더 민감해지게 되요. 하지만 반대로 데이터를 정규화를 해서 중앙으로 이동 시키면 데이터 클라우드가 원점에
위치할 것이고 더 좋은 조건으로 최적화 문제를 다룰수 있게 되요.
데이터 전처리
▪ 질문이 들어왔는데 네 사람들은 가끔 RGB 말고 다른 컬러 스페이스를 쓰고 있어요. 하지만 저는 사람들이 그걸로 이미지 분류를 처
리하기보다는 이미지 프로세싱 작업들을 초해상도나 노이즈제거 같은 것들에서 다루는걸 주로 봤고, 신경망에다가 다른 컬러 공간
의 이미지를 입력을 넣는 경우도 자주 있어요.
데이터 전처리
▪ 하지만 제 생각에는 어떤 컬러스패이스를 사용할지는 큰 문제가 되지 않아요 어짜피 한 컬러 공간에서 다른 컬러 공간으로 바꾸는건
꽤 간단한 방정식으로 할수 있고 신경망에서도 그런 변환 과정을 앞층에서 암묵적으로 학습해서 수행할수 있거든요. 그래서 여러분
이 가끔 다른 컬러 공간을 입력으로 주는 경우를 보더라도 최종 결과에서 큰 차이는 일어나지는 않습니다.
데이터 전처리
▪ 이제 사람들이 실제 이미지를 다룰때 무엇을하는지 더 자세히 이야기 해봅시다. 이미지에서 흔히 사용하는 연산들 몇가지가 있는데,
그런 연산들 중 하나로 훈련 데이터셋의 평균 이미지를 계산한건데 alexnet의 예시를 들자면 훈련 데이터가 32 x 32 x 3의 형태 였었죠.
전체 훈련 데이터셋에 평균을 계산해서 평균 이미지를 계산하면, 이걸 전체 훈련 샘플에다가 뺄샘 연산을 할 수 있겠습니다.
데이터 전처리
▪ 다른 흔한 전처리 방법은 채널 단위 평균을 빼는 방법인데, 전체 데이터셋에 RGB 색상 채널들의 평균을 구하고 각 픽셀별로 해당 채
널의 평균 값을 빼주는 방식이 VGG를 학습 시키는데 사용되었습니다. 다른 흔하게 사용되는 방법은 채널 단위 평균을 빼고, 채널 단위
로 표준 편차를 나누는 것으로 각 채널의 평균 값을 구하고, 세 색상 채널의 표준 편차를 계산해내 (길이가 3인 벡터가 2개) 전체 이미
지에 대해 채널 별로 평균을 빼고, 표준편차를 나누어 주었습니다. 이게 ResNet에 사용된 표준화 전처리 과정입니다.
데이터 전처리
감사합니다

More Related Content

What's hot

What's hot (20)

[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
 
제어-물리적시스템의 수학적모델링
제어-물리적시스템의 수학적모델링제어-물리적시스템의 수학적모델링
제어-물리적시스템의 수학적모델링
 
논문-정규분포변환
논문-정규분포변환논문-정규분포변환
논문-정규분포변환
 
Chapter 6 Deep feedforward networks - 2
Chapter 6 Deep feedforward networks - 2Chapter 6 Deep feedforward networks - 2
Chapter 6 Deep feedforward networks - 2
 
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
 
Chapter 7 Regularization for deep learning - 2
Chapter 7 Regularization for deep learning - 2Chapter 7 Regularization for deep learning - 2
Chapter 7 Regularization for deep learning - 2
 
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)
 
딥러닝 기본 원리의 이해
딥러닝 기본 원리의 이해딥러닝 기본 원리의 이해
딥러닝 기본 원리의 이해
 
밑바닥부터 시작하는딥러닝 8장
밑바닥부터 시작하는딥러닝 8장밑바닥부터 시작하는딥러닝 8장
밑바닥부터 시작하는딥러닝 8장
 
텐서플로우로 배우는 딥러닝
텐서플로우로 배우는 딥러닝텐서플로우로 배우는 딥러닝
텐서플로우로 배우는 딥러닝
 
알아두면 쓸데있는 신비한 딥러닝 이야기
알아두면 쓸데있는 신비한 딥러닝 이야기알아두면 쓸데있는 신비한 딥러닝 이야기
알아두면 쓸데있는 신비한 딥러닝 이야기
 
합성곱 신경망
합성곱 신경망합성곱 신경망
합성곱 신경망
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
 
DL from scratch(1~3)
DL from scratch(1~3)DL from scratch(1~3)
DL from scratch(1~3)
 
Ai 그까이거
Ai 그까이거Ai 그까이거
Ai 그까이거
 
Image Deep Learning 실무적용
Image Deep Learning 실무적용Image Deep Learning 실무적용
Image Deep Learning 실무적용
 
From maching learning to deep learning
From maching learning to deep learningFrom maching learning to deep learning
From maching learning to deep learning
 
Denoising auto encoders(d a)
Denoising auto encoders(d a)Denoising auto encoders(d a)
Denoising auto encoders(d a)
 
A Beginner's guide to understanding Autoencoder
A Beginner's guide to understanding AutoencoderA Beginner's guide to understanding Autoencoder
A Beginner's guide to understanding Autoencoder
 

Similar to [컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리

보다 나은 웹 어플리케이션 설계
보다 나은 웹 어플리케이션 설계보다 나은 웹 어플리케이션 설계
보다 나은 웹 어플리케이션 설계
Eb Styles
 
절차지향 vs 객체지향
절차지향 vs 객체지향절차지향 vs 객체지향
절차지향 vs 객체지향
QooJuice
 

Similar to [컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리 (15)

[유쉘] 4.활성화 함수
[유쉘] 4.활성화 함수[유쉘] 4.활성화 함수
[유쉘] 4.활성화 함수
 
[유쉘] 5.가중치 초기화
[유쉘] 5.가중치 초기화[유쉘] 5.가중치 초기화
[유쉘] 5.가중치 초기화
 
PaLM Paper Review
PaLM Paper ReviewPaLM Paper Review
PaLM Paper Review
 
밑바닥부터 시작하는 딥러닝 - 학습관련기술들 스크립트
밑바닥부터 시작하는 딥러닝 - 학습관련기술들 스크립트밑바닥부터 시작하는 딥러닝 - 학습관련기술들 스크립트
밑바닥부터 시작하는 딥러닝 - 학습관련기술들 스크립트
 
SAGAN_2024seminar announce_seoultech.pptx
SAGAN_2024seminar announce_seoultech.pptxSAGAN_2024seminar announce_seoultech.pptx
SAGAN_2024seminar announce_seoultech.pptx
 
Survey of activation functions
Survey of activation functionsSurvey of activation functions
Survey of activation functions
 
Understanding deep learning requires rethinking generalization (2017) 2 2(2)
Understanding deep learning requires rethinking generalization (2017)    2 2(2)Understanding deep learning requires rethinking generalization (2017)    2 2(2)
Understanding deep learning requires rethinking generalization (2017) 2 2(2)
 
Learning method
Learning methodLearning method
Learning method
 
보다 나은 웹 어플리케이션 설계
보다 나은 웹 어플리케이션 설계보다 나은 웹 어플리케이션 설계
보다 나은 웹 어플리케이션 설계
 
Soft Actor-Critic Algorithms and Applications 한국어 리뷰
Soft Actor-Critic Algorithms and Applications 한국어 리뷰Soft Actor-Critic Algorithms and Applications 한국어 리뷰
Soft Actor-Critic Algorithms and Applications 한국어 리뷰
 
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)
 
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
 
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
 
절차지향 vs 객체지향
절차지향 vs 객체지향절차지향 vs 객체지향
절차지향 vs 객체지향
 
04.basic+aesthetic patching hangul
04.basic+aesthetic patching hangul04.basic+aesthetic patching hangul
04.basic+aesthetic patching hangul
 

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

[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리

  • 1. 도정찬 컴퓨터 비전을 위한 신경망 학습 파트 1 Training Neural Network Part 1 - 2. 활성화 함수와 데이터 전처리 Michigan Online, Justin Johnson, Computer Vision, 2021. 02. 21
  • 2. ▪ 지금까지 ReLU에 관한 두가지 문제 음수인 경우 그라디언트가 0이 되는 문제와 영 중심을 가지지 않는다는 점을 보았구요. 이를 보 완하는 방법으로 제안된게 Leaky ReLU가 있습니다. 이 방법은 이 문제를 둘다 풀수 있어요. Leaky ReLU는 ReLU처럼 단순한데 다른점이 라면 음수 부분에서 아주 작은 양의 상수를 곱해서 0이 되는걸 막아줘요. 그러면 Leaky ReLU의 음의 영역은 아주 작은 양의 기울기를 가지게 됩니다. 활성화 함수 : Leaky ReLU
  • 3. ▪ 이걸로 어떤 것들을 생각해볼수 있을까요. ReLU처럼 완전히 0은 아니고 정보 일부가 새어나간다고 볼수 있을겁니다. 하지만 음의 영 역에 있는 아주 약간의 정보일거에요. 위를 보면 leaky relu의 음의영역은 0.01의 기울기를 가지고 있는데 이 값은 하이퍼파라미터로 필 요하다면 조정할수 있어요. 이런 leaky relu의 장점 덕분에 양의 영역에서도 포화되지 않고, 효율적으로 계산할 수 있습니다. 그리고 relu나 시그모이드랑은 다르게 로컬 그라디언트가 0이 될 일이 없으니 그라디언트가 죽는것도 없어요. 활성화 함수 : Leaky ReLU
  • 4. ▪ 정리하자면 leaky relu는 relu가 음의 영역에서 죽어버리는 문제가 생기지 않고 약간의 그라디언트를 받을수 있고, 계속 학습을 시켜 나갈수 있겠습니다. 하지만 이 leaky relu에서 짜증나는 점은 0.01이라는 이 하이퍼파라미터 값은 우리가 설정해야하는 값이고, 우리가 선형 분류기기에 대한 첫번째 과제를 하면서 경험했다시피 하이퍼 파라미터가 많아지면서, 모델을 학습하기가 더 힘들어 지겠죠. 이 런 하이퍼파라미터를 볼떄마다 여러분이 해야할 일은 특정값을 사용하기 보다는 학습을 통해서 찾아내야 될거에요. 활성화 함수 : Leaky ReLU
  • 5. ▪ 이게 모수적으로 고친건데, 음의 영역에서 기울기가 신경망에서 학습가능한 파라미터가 되었나는 점을 빼면 leaky relu와 비슷해요. 비선형 함수가 학습 가능한 파라미터를 가지게 되었다는건 웃길수도 있긴하지만, 역전파 과정에서 이 알파에 대한 비용의 그라디언 트를 계산할 것이고 경사 하강 과정을 거칠수 있을거에요. 이렇게 구한 알파 값은 상수값이 될수도 있고, 합성곱 계층의 값들이나 완전 연결계층의 출력을 나누는 값으로 사용될수 있을겁니다. 활성화 함수 : Leaky ReLU
  • 6. ▪ 여러분들은 이걸 사용하는 사람들을 앞으로 종종 볼거에요. 하지만 이런 종류의 relu 함수들의 한가지 문제점은 0인 지점에서 미분 을 할수 없게 되는데, 입력이 0일때 어떤일이 생기는지 궁금할수 있겠지만, 그런 경우는 매우 드물다보니까 어떤 값을 가지던간에 보 통 잘 동작합니다. -> x가 0인 경우 미분을 할수 없게 되는데 +방향에서 왔을때 미분치 1, -방향에서 왔을때 미분치 alpha 둘중 어느걸 사용해도 상관없다? 로 이해된다. 활성화 함수 : Leaky ReLU
  • 7. ▪ 조금 더 이론적인 내용들을 활용해서 지수 선형 유닛 Exponential Linear Unit을 사용할 때도 있어요. 이거는 ReLU함수가 가지는 문제 들을 개선하기 위해서 나온건데 부드럽고, 0을 중심으로하는 경향이 더 있죠. 이 지수 선형 유닛의 수학적인 정의는 슬라이드 아래에 서 볼수 있는데, 양의 영역에서는 항등함수가 되지만 음의 영역에서는 지수적인 값을 계산해서 시그모이드의 꼬리 같은 형태처럼 되 어요. 활성화 함수 : 지수 선형 유닛 ELU
  • 8. ▪ 그렇다보니 마이너스 부분에서 직선이 아니라 왼쪽에서 점진적으로 증가하다보니, 일반 relu에서 있었던 영 그라디언트 문제를 피 할수가 있게 되었습니다. 음의 영역이 0이 되는걸 피했으니 올바르게 고쳤다고 할수 있을거에요. 이 비선형 함수는 영을 중심으로하 는 출력 값을 만들 수 있고, 논문에서 이에 대한 내용들이 잘 나와 있어요. 활성화 함수 : 지수 선형 유닛 ELU
  • 9. ▪ 하지만 계산 과정에서 지수 함수가 있다보니 좋지 않고, alpha라고 하는 하이퍼 파라미터가 추가되다보니 학습을 시킬수도 있겠지만 지정해주는게 좋을거에요. 지금 본 ELU나 PReLU는 저는 지금까지 실제로 이걸 쓰는 사람을 본적이 없어요. 하지만 여러분들이 이걸 시 도해보고 논문 쓸지 모르죠. 활성화 함수 : 지수 선형 유닛 ELU
  • 10. ▪ 여기서 끝나찌 끝나지 않고 다른 논문들도 있는데 사람들이 정말 뭔가 제안하기를 좋아해요. 제가 하고싶은 말은 이런 아이디어가 있을때 비선형 함수에 대한? 이건 신경망의아주 작은 부분인데 여러분들이 새로운걸 찾아내서 실험을 해보면서, 새로운 비선형 함수 로 신경망을 바꾸면 많은 사람들에게 관심을 받을 수 있을 겁니다. 활성화 함수 : 지수 선형 유닛 ELU
  • 11. ▪ 이번에 우리가 볼거는 SELU라고 하는 Scaled Exponential Linear 활성화 합수입니다. 이거는 이전 슬라이드에서 본 ELU의 스케일을 조 정한 버전이란 점에서 다른부분은 alpha와 lambda를 이렇게 긴 상수로 지정하고 있어요. 이렇게 하는 이유는 딥러닝으로 학습시켜서 구하기보다 알파와 람다를 지정하면 SELU 비선형함수가 스스로를 정규화 self normalizing시키는 성질을 가지게 되거든요. 활성화 함수 : 조정된 지수 선형 유닛 SELU
  • 12. ▪ 여러분들의 신경망 계층들이 무한대로 깊어지더라도 활성화 함수가 잘 동작해서 (신경망이 무한하게 깊어지더라도) 유한한 값으로 수렴할 수 있어요. 다시 말하자면 신경망이 엄청 깊어지더라도 SELU 비선형 함수를 사용한 아주 깊은 신경망은 배치 정규화나 다른 정 규화 기법 없이도 깊은 신경망을 학습할수 있다고 할수 있겠습니다. 활성화 함수 : 조정된 지수 선형 유닛 SELU
  • 13. ▪ 아쉽지만 이게 왜 사실인지 확인하려면 부록에 있는 91페이지짜리 수식들을 가지고 봐야하는데, 인내심을 가지고 할수 있으면 한번 봐도 될거같아요. 활성화 함수 : 조정된 지수 선형 유닛 SELU
  • 14. ▪ 하지만 제가 지금까지 본 수 많은 활성화 함수들에 대해서 더 중요하다고 생각하는점은 실제 이 함수들의 성능은 그렇게 크게 차이 가 나지는 않아요. 여기보면 여러 논문에서 가져온 성능에 관한 그래프가 있는데, cifar-10 데이터셋을 사용할때 서로 다른 비선형 함 수들을 사용한 신경망 아키텍처에서 성능을 보여주고 있어요. 활성화 함수 : 조정된 지수 선형 유닛 SELU
  • 15. ▪ 여러분이 이 그래프를 보면 다른 막대들보다 가장 높은 활성화 함수들을 볼수 있을건데, 이그림에서 가장 중요한 건 이들이 얼마나 가까이 있는지를 봐야 해요. ResNet에서 ReLU가 93.8, leaky ReLu 94.2, softplus는 94.6이죠. 하지만 이런 활성화 함수들이 다른 신경망 아키텍처에서도 일관된 (순위) 추세를 보이지는 않는데, GELU라고 부르는 함수나 Swish 비선형 함수를 보면 ReLU보다 조금 더 좋은 성 능을 보이지만, DenseNet의 경우 ReLU가 약간 더 좋은 성능을 보이고 있어요. 활성화 함수 : 조정된 지수 선형 유닛 SELU
  • 16. ▪ 하지만 이런 비선형 함수들을 다룰때 실제로 중요한건 이런 성능에 대해서 너무 스트레스받지마세요. 시그모이드나 tanh를 고르지 않는 이상 이런 현대적인 비선형 함수들이 대부분 잘 동작하거든요. 비선형 함수에 의해 최종 정확도가 1, 2%정도 변하는 문제가 있을 수도 있기는한데 이건 데이터셋이나 신경망 아키텍처, 그리고 다른 하이퍼파라미터를 어떻게 선택하느냐에 달린 문제에요. 활성화 함수 : 조정된 지수 선형 유닛 SELU
  • 17. ▪ 아쉽지만 이게 왜 사실인지 확인하려면 부록에 있는 91페이지짜리 수식들을 가지고 봐야하는데, 인내심을 가지고 할수 있으면 한번 봐도 될거같아요. 활성화 함수 : 조정된 지수 선형 유닛 SELU
  • 18. ▪ 제가 추천하고싶은건 활성화 함수를 고르는것때문에 너무 스트래스받지 말고 그냥 ReLU를 사용해도 잘 동작할거에요 (아마도). 만 약 여러분들이 최종 성능 퍼센트를 줄여야 하는 상황이라면 다른 비선형 함수로 바꿔가면서도 실험해야 되겠죠. leaky relu나 selu, gelu 같은 함수들을 사용해보면 좋을거에요. 하지만 너무 큰 기대를 하지 말고, 시그모이드나 tanh는 신경망이 수렴하지도 않을거고 최악 의 방법이니 사용하지 마세요. 활성화 함수에 대해서 정리하자면 이렇게 요약할수 있겠습니다. 활성화 함수 : 정리
  • 19. ▪ 질문이 들어왔는데, 이런 모든 활성화 함수는 단조롭게 monotonic 증가해요. 그런데 왜 sine이나 cosine 같은 함수들을 사용하지 않을 까요? 제가 사실 약간 거짓말을 한게 GELU 비선형 함수는 제가 제대로 얘기를 하지 않았지만 비단조적입니다/단순하게 증가하지 않 습니다. 그런데 만약 우리가 사용하는 활성화 함수가 비단조적이라면 사인이나 코사인같은 거라면, 값이 증가하거나 감소하는 과정 에서 여러개의 X가 같은 Y를 가지는 경우가 생기게되는데 이게 학습 과정에서 문제가 될 수 있어요. 활성화 함수 : 정리
  • 20. ▪ 왜냐면 활성화 함수가 역변환이 될수없다보니 일부 정보를 잃어버리거든요. 우리가 처음에 활성화 함수를 사용했던 이유는 계산을 간단하게 할 뿐만이아니라 시스템에 비선형성을 추가하기 위함이었었죠. 저는 sine 함수나 cosine함수로 학습하려고 했던 사람들을 보기는 했는데 여러분들이 배치 정규화를 쓴다면 학습을 할수야 있긴하지만 그렇게 추천하지는 않아요. 활성화 함수 : 정리
  • 21. ▪ GELU 비선형 함수는 조금 신기한 방법인데 이걸 이해하려면 논문을 읽어봐야되요. 개념은 활성화 함수를 비단조적으로 해서 규제 처럼 동작을 하도록 만들어요. 이 방법은 이후에 다룰 드롭 아웃이랑 같이 사용하는데 일반적으로 이 방법은 잘 사용되지 않고, 대부분 의 경우 활성화 함수로 단조로운 것들을 사용해요. 활성화 함수 : 정리
  • 22. ▪ 이번에는 데이터 전처리에 대해서 살펴봅시다. 아마 여러분들이 과제 하면서 노트북에서 한건데, 스타터 코드를 읽어보고 데이터 로드 코드를 쓰면서 과제 시작 단계에서 하던 작업을 데이터 전처리라고 부릅니다. 기본 아이디어는 신경망에다가 데이터를 넣기 전 에 더 효율적으로 학습할수 있도록 고치는거에요. 데이터 전처리
  • 23. ▪ 여기에 그림을 보면 훈련 데이터셋을 나타내는 데이터 클라우드가 왼쪽 그래프의 빨간색으로 나오고 있는데, X하고 Y는 이 데이터의 특징들이에요. 여러분들이 이 이미지를 볼때 원본 데이터는 아주 길고, 얇은데다가 중심으로부터 떨어져 있는걸 볼수 있어요. 이걸 이 미지라고 생각한다면 이미지 데이터는 일반적으로 0 ~ 255 사이 픽셀 값으로 저장되죠. 이걸 이미지 데이터에 대한 데이터클라우드의 분포가 원점에서 떨어져 있다고 볼수 있어요. 데이터 전처리
  • 24. ▪ 그래서 우린 이걸 표준화를 해야하는데, 데이터셋의 평균으로 빼서 원점으로 이동시키고, 각 원소들을 전체 합하고 각 특징축으로 리스케일 시키켜야하는데, 표준 편차로 나눠주면 되요. 그러면 두 특징 축에 대해서 데이터들은 평균과 분산이 0, 1로 똑같이 됩니다. 데이터 전처리
  • 25. ▪ 왜 이런 전처리 과정을 하는지 이전에 얘기했던걸 되돌아 보면, 이건 시그모이드 비선형 함수의 편향 문제와 관련이 되어있는데 시 그모이드 함수는 모든 입력에 대해 출력 값이 양수가 되었었고, 모든 그라디언트의 방향이 양의 방향이되거나 음의 방향으로 갔었죠. 이것과 비슷한 현상이 훈련 데이터셋이 모두 양수인 경우에도 일어나, 모든 가중치 갱신치들이 하나의 부호로 제약이 되요. 이 문제는 신경망에 입력으로 넣기 전에 크기를 재조정해서/리스케일링으로 쉽게 고칠수가 있어요. 데이터 전처리
  • 26. ▪ 이미지 데이터의 경우 흔하게 전체 데이터에서 평균을 뺴고 표준 편차로 나누는 방법을 많이 사용합니다. 이미지가 아닌 다른 데이 터의 경우 다른 전처리 과정을 사용할 수 있어요. 데이터 전처리
  • 27. ▪ 디코릴레이션 decorrelation과 화이트닝 이라는 방법을 볼 수 있는데, 우리가 가지고 있는 훈련 데이터의 공분사 sgodfuf을 계산해서 이걸로 데이터 클라우드를 회전시킬수가 있어요. 그러면 그 특징은 상관관계를 잃어버려 슬라이드 중간의 녹색 데이터클라우드처럼 되요. 우리는 지금까지 입력 클라우드를 원점으로 이동시키고 회전시켰습니다. 데이터 전처리
  • 28. ▪ 이걸 참고해서 입력을 바로 평균이 0, 분산이 1이 되도록 만드는게 아니라 디코릴레이션을 하고 난 뒤에 정규화를 수행할 수도 있어 요. 그렇게 하고나면 데이터 클라우드는 맨 오른쪽에 파란색으로 좌표계의 중심에서 잘그려진 원형 형태로 만들어져 볼수 있어요. 이 정규화 과정을 입력 데이터를 이쁘게 만들다보니 화이트닝 whitening이라고 부르며, 저차원 입력 데이터를 사용하는 문제에서 자주 사용해요. 하지만 이미지 데이터의 경우에는 자주 사용되지는 않습니다. 데이터 전처리
  • 29. ▪ 왜 이미지 전처리를 하는지 알기위해서 다른 관점에서 보자면 선형 분류기를 학습시키려고 할때, 비표준화된 데이터와 표준화된 데 이터에 어떤 일이 일어났는지 생각해보면 도움이 됩니다. 여기서 왼쪽 그림을 보면 데이터 클라우드가 원점으로 부터 멀리 떨어져 있 는데 우리는 파란 클래스와 빨간 클래스로 분할하는 선형 분류기를 찾고자 해요. 데이터 전처리
  • 30. ▪ 우리가 가중치 행렬을 작은 임의의 수로 초기화를 시키면 (이전에 했던거 처럼), 선형 분류기로 학습시키고자하는 결정 경계가 아마 원점 근처를 지나갈 거에요. 한번 우리가 가진 데이터 클라우드가 원점으로부터 아주아주 멀리 떨어져 있다면 가중치 행렬의 값이 약 간 변하더라도 결정 경계는 아주 급격하게 변하게 될거에요.(데이터가 가까우면 결정경계가 조금만 이동하지만, 멀다보니 크게이동) 데이터 전처리
  • 31. ▪ 정리하자면 데이터가 정규화 되지 않은 경우, 하기 전에 가중치 행렬이 약간만 변하더라도 시스템의 분류 성능을 크게 바꿀수 있게 되므로 최적화 문제가 더 민감해지게 되요. 하지만 반대로 데이터를 정규화를 해서 중앙으로 이동 시키면 데이터 클라우드가 원점에 위치할 것이고 더 좋은 조건으로 최적화 문제를 다룰수 있게 되요. 데이터 전처리
  • 32. ▪ 질문이 들어왔는데 네 사람들은 가끔 RGB 말고 다른 컬러 스페이스를 쓰고 있어요. 하지만 저는 사람들이 그걸로 이미지 분류를 처 리하기보다는 이미지 프로세싱 작업들을 초해상도나 노이즈제거 같은 것들에서 다루는걸 주로 봤고, 신경망에다가 다른 컬러 공간 의 이미지를 입력을 넣는 경우도 자주 있어요. 데이터 전처리
  • 33. ▪ 하지만 제 생각에는 어떤 컬러스패이스를 사용할지는 큰 문제가 되지 않아요 어짜피 한 컬러 공간에서 다른 컬러 공간으로 바꾸는건 꽤 간단한 방정식으로 할수 있고 신경망에서도 그런 변환 과정을 앞층에서 암묵적으로 학습해서 수행할수 있거든요. 그래서 여러분 이 가끔 다른 컬러 공간을 입력으로 주는 경우를 보더라도 최종 결과에서 큰 차이는 일어나지는 않습니다. 데이터 전처리
  • 34. ▪ 이제 사람들이 실제 이미지를 다룰때 무엇을하는지 더 자세히 이야기 해봅시다. 이미지에서 흔히 사용하는 연산들 몇가지가 있는데, 그런 연산들 중 하나로 훈련 데이터셋의 평균 이미지를 계산한건데 alexnet의 예시를 들자면 훈련 데이터가 32 x 32 x 3의 형태 였었죠. 전체 훈련 데이터셋에 평균을 계산해서 평균 이미지를 계산하면, 이걸 전체 훈련 샘플에다가 뺄샘 연산을 할 수 있겠습니다. 데이터 전처리
  • 35. ▪ 다른 흔한 전처리 방법은 채널 단위 평균을 빼는 방법인데, 전체 데이터셋에 RGB 색상 채널들의 평균을 구하고 각 픽셀별로 해당 채 널의 평균 값을 빼주는 방식이 VGG를 학습 시키는데 사용되었습니다. 다른 흔하게 사용되는 방법은 채널 단위 평균을 빼고, 채널 단위 로 표준 편차를 나누는 것으로 각 채널의 평균 값을 구하고, 세 색상 채널의 표준 편차를 계산해내 (길이가 3인 벡터가 2개) 전체 이미 지에 대해 채널 별로 평균을 빼고, 표준편차를 나누어 주었습니다. 이게 ResNet에 사용된 표준화 전처리 과정입니다. 데이터 전처리