51
Understanding deep learning requires rethinking generalization (2017) - 1/2 Chiyuan Zhang, Samy Bengio, Moritz Hardt, Benjamin Recht, Oriol Vinyals 170322 @mikibear_ 논문 정리

Understanding deep learning requires rethinking generalization (2017) 1/2

Embed Size (px)

Citation preview

Page 1: Understanding deep learning requires rethinking generalization (2017) 1/2

Understanding deep learning requires rethinking generalization (2017) - 1/2

Chiyuan Zhang, Samy Bengio, Moritz Hardt, Benjamin Recht, Oriol Vinyals

170322 @mikibear_ 논문 정리

Page 3: Understanding deep learning requires rethinking generalization (2017) 1/2

질문 1,

"딥러닝 알고리즘은 진정으로 일반화를 하고 있는가?"

Page 4: Understanding deep learning requires rethinking generalization (2017) 1/2

이 질문은, 모델의'일반화를 잘 하는 정도'를 어떻게 측정할 수 있는가하는 문제와 밀접하게 연관되어 있습니다.

Page 5: Understanding deep learning requires rethinking generalization (2017) 1/2

그리고 우리는 일반적으로 사용하는 답을 알죠.

바로 Generalization Error

Page 6: Understanding deep learning requires rethinking generalization (2017) 1/2

그리고 우리는 일반적으로 사용하는 답을 알죠.

바로 Generalization Error= |training error - test error|

Page 7: Understanding deep learning requires rethinking generalization (2017) 1/2

당연히 Generalization error가 작을 수록,모델은 일반화를 잘하고 있다고 말할 수 있을 것입니다.

Page 8: Understanding deep learning requires rethinking generalization (2017) 1/2

논문엔 없는 내용이지만, 다음과 같은 상황을 상정해봅시다.

개와 고양이를 구분하는 학습을 하는

Page 9: Understanding deep learning requires rethinking generalization (2017) 1/2

논문엔 없는 내용이지만, 다음과 같은 상황을 상정해봅시다.

개와 고양이를 구분하는 학습을 하는

뉴럴넷 모델과

Page 10: Understanding deep learning requires rethinking generalization (2017) 1/2

논문엔 없는 내용이지만, 다음과 같은 상황을 상정해봅시다.

개와 고양이를 구분하는 학습을 하는

뉴럴넷 모델과

생전 개와 고양이라는 개념을 처음 접하는 아기

Page 11: Understanding deep learning requires rethinking generalization (2017) 1/2

이건 개야!

이건 고양이야!

Page 12: Understanding deep learning requires rethinking generalization (2017) 1/2

대답 잘 하겠죠?

"이건 뭐야?"

개!

Page 13: Understanding deep learning requires rethinking generalization (2017) 1/2

"이건 뭐야?"개!

물론 우리의 VGG, Inception, AlexNet같은 것도 잘하죠

Page 14: Understanding deep learning requires rethinking generalization (2017) 1/2

여기까지는 아무 문제 없습니다.

그럼 다음 상황을 봅시다.

Page 15: Understanding deep learning requires rethinking generalization (2017) 1/2

개, 고양이 사진에 붙은 라벨을 전부 떼고, 라벨을 랜덤 배정합니다.그리고 가르칩시다.

Page 16: Understanding deep learning requires rethinking generalization (2017) 1/2

이건 개야!

이건 고양이야!

이건 고양이야!

이건 고양이야!

이건 개야!

Page 17: Understanding deep learning requires rethinking generalization (2017) 1/2

???

당연히 혼돈스럽습니다.

Page 18: Understanding deep learning requires rethinking generalization (2017) 1/2

같은 질문을 해봅시다.

"이건 뭐야?"

몰라...

Page 19: Understanding deep learning requires rethinking generalization (2017) 1/2

물론 우리 뉴럴넷도 모를 겁니다.

"이건 뭐야?" 몰라...

Page 20: Understanding deep learning requires rethinking generalization (2017) 1/2

여기까지도 아무 문제 없습니다.

문제는 학습했던 데이터를 다시 보여줄 때 발생합니다.

Page 21: Understanding deep learning requires rethinking generalization (2017) 1/2

어떻게 아기가 대답해야, 아기가 일반화를 잘한다고 할 수 있을까요?

"이건 뭐야?"

'고양이'라고 알려줬던 사진

Page 22: Understanding deep learning requires rethinking generalization (2017) 1/2

정답은 "몰라..."입니다.

Page 23: Understanding deep learning requires rethinking generalization (2017) 1/2

라벨을 랜덤 배정하면서이미지와 라벨의 관계가 없어졌기 때문에 이미지를 보고 라벨을 예측한다는 것이 말이 안되기 때문입니다.

Page 24: Understanding deep learning requires rethinking generalization (2017) 1/2

만약 이렇다면 어떤 의미일까요?

"이건 뭐야?"

'고양이'라고 알려줬던 사진

고양이!

Page 25: Understanding deep learning requires rethinking generalization (2017) 1/2

만약 아기가 '고양이'라고 답한다면,

아기는 고양이라는 개념을 일반화한 것이 아니라,

이미지를 보고 라벨을 암기한 것입니다

Page 26: Understanding deep learning requires rethinking generalization (2017) 1/2

논문에서 제기하고 있는 문제점이 이것입니다.

딥러닝 모델은 이와 같은 상황에서 암기를 합니다.

Page 27: Understanding deep learning requires rethinking generalization (2017) 1/2

요렇게 행동한다는 뜻이죠.

"이건 뭐야?"

'고양이'라고 알려줬던 사진

고양이!

내가 암 ㅇㅇ내가 봤음

Page 28: Understanding deep learning requires rethinking generalization (2017) 1/2

그래서 실험에서 CIFAR10 데이터셋을 활용해 (라벨이 10개)

('진짜 이미지' - '완전한 랜덤 라벨링') 쌍을 이용해 몇몇 모델을 트레이닝시킵니다.그 실험만 진행한 것은 아니지만, 결론은 같으니 생략하겠습니다.

Page 29: Understanding deep learning requires rethinking generalization (2017) 1/2

결과

Page 30: Understanding deep learning requires rethinking generalization (2017) 1/2

결과

Training error는 0으로 가고, Testing error는 0.9로 갑니다.

Page 31: Understanding deep learning requires rethinking generalization (2017) 1/2

Training error가 0이므로,

Generalization error = Testing error

즉, 모든 경우에 대해서 좀 큰 뉴럴넷은 0.9의 Generalization error를 가지게 됩니다.

Page 32: Understanding deep learning requires rethinking generalization (2017) 1/2

Training error가 0이므로,

Generalization error = Testing error

즉, 모든 경우에 대해서 좀 큰 뉴럴넷은 0.9의 Generalization error를 가지게 됩니다.

좀… 많이 크네요...

Page 33: Understanding deep learning requires rethinking generalization (2017) 1/2

논문에서는 본 실험을 다음과 같이 요약하고 있습니다.

Page 34: Understanding deep learning requires rethinking generalization (2017) 1/2

논문에서는 본 실험을 다음과 같이 요약하고 있습니다.

와아 대단해 뉴럴넷은 암기를 잘하는 프렌즈구나

Page 35: Understanding deep learning requires rethinking generalization (2017) 1/2

'음… 그래도 요즘에 일반화 잘한다고 알려진 방법 있잖아요.

Data augmentation이나Dropout이나

Weight decay나BatchNorm이나

Early stopping이나…

그런 것들 걸면 좀 낫지 않을까요?'

Page 36: Understanding deep learning requires rethinking generalization (2017) 1/2

질문 2,

"그런 것들은 좀 일반화를 더 잘 시키는데 도움이 될까?"

Page 37: Understanding deep learning requires rethinking generalization (2017) 1/2

Dropout이나 weight decay를 걸어도 이미지넷 데이터에서도 잘 '외웁'니다 (...)

Page 38: Understanding deep learning requires rethinking generalization (2017) 1/2

오, 근데 weight decay는 좀 일반화를 시키나봅니다. 랜덤 라벨에서 train data에 대한 정확도가 줄었네요

Page 39: Understanding deep learning requires rethinking generalization (2017) 1/2

'그럼 그냥 기존의 모델이나 논문에서 걸었던 data augmentation이나 weight decay나 batch norm 같은 걸 빼면 어떨까...?'

Page 40: Understanding deep learning requires rethinking generalization (2017) 1/2

'그럼 그냥 기존의 모델이나 논문에서 걸었던 data augmentation이나 weight decay나 batch norm 같은 걸 빼면 어떨까...?

기존에 해왔던 것이 전부 사기일리는 없으니까… 랜덤 라벨링 안 한 정상적인 데이터에선 저런 기법들이 돌아가긴 하잖아'

Page 41: Understanding deep learning requires rethinking generalization (2017) 1/2
Page 42: Understanding deep learning requires rethinking generalization (2017) 1/2
Page 43: Understanding deep learning requires rethinking generalization (2017) 1/2

네, 기법의 조합이나 구조에 따라서 달라지긴 하지만 잘 작동합니다. 특히, batch norm이 있고 없고는 inception에서 굉장한 차이가 있습니다.

Page 44: Understanding deep learning requires rethinking generalization (2017) 1/2

논문에서는 세부적으로 좀 많이 구구절절 다루는데, 생략하도록 하겠습니다.

Page 45: Understanding deep learning requires rethinking generalization (2017) 1/2

'아니, 그래서 일반화를 위한 regularizer들이 일반화를 한다는 거에요, 안한다는 거에요?'

Page 46: Understanding deep learning requires rethinking generalization (2017) 1/2
Page 47: Understanding deep learning requires rethinking generalization (2017) 1/2

'좀 작동하긴 하는데, 그런 regularizer가 일반화의 결정적인 이유는 아니니까…일반화에 대해서 좀 재고해볼 필요가 있지 않을까요?'

Page 48: Understanding deep learning requires rethinking generalization (2017) 1/2

'좀 작동하긴 하는데, 그런 regularizer가 일반화의 결정적인 이유는 아니니까…일반화에 대해서 좀 재고해볼 필요가 있지 않을까요?'

결론이 왠지 미적지근...

Page 49: Understanding deep learning requires rethinking generalization (2017) 1/2

질문 3,"딥러닝 모델이 암기를 한다고 했는데, 그럼 그 Capacity가 어떻게 되나?"

질문 4,"SGD도 딥러닝 트레이닝 중 일반화를 시키는데 도움을 준다고 알려져 있는데, 이건 어떤가?"

Page 50: Understanding deep learning requires rethinking generalization (2017) 1/2

추후에…(사실 뒤에 내용들이 더 멋집니다)

Page 51: Understanding deep learning requires rethinking generalization (2017) 1/2

틀린 내용이 있거나 중요한데 빠져있는 경우 알려주세요!@mikibear