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

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

Transcript of Understanding deep learning requires rethinking generalization (2017) 2 2(2)

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

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

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

170326 @mikibear_ 논문 정리

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

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

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

"(2n + d)의 weight를 가지고, 활성화 함수로 ReLU를 사용하는 2층 뉴럴 네트워크는

d차원의 n개의 샘플에 대한 어떠한 함수든 표현할 수 있다."

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

증명(약간의 선형대수 지식이 필요합니다)

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

본 Theorem의 증명은 다음과 같은 Lemma로 시작합니다.

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

본 Theorem의 증명은 다음과 같은 Lemma로 시작합니다.

Sequence가 이렇게 있을 때,

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

본 Theorem의 증명은 다음과 같은 Lemma로 시작합니다.

Sequence가 이렇게 있을 때,

이런 매트릭스 A가

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

본 Theorem의 증명은 다음과 같은 Lemma로 시작합니다.

Sequence가 이렇게 있을 때,

매트릭스 A가

Rank가 n입니다.

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

본 Theorem의 증명은 다음과 같은 Lemma로 시작합니다.

Sequence가 이렇게 있을 때,

매트릭스 A가

Rank가 n입니다.???????????

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

좀 친숙한 형태로 바꿔봅시다

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

A를 Square Matrix Form으로 적으면 요렇게 됩니다

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

A는 Lower-triangular matrix인 것을 알 수 있습니다.

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

A는 Lower-triangular matrix인 것을 알 수 있습니다.따라서 A의 rank는 n입니다.(Gaussian elimination 등을 떠올려보면 더 쉽게 와닿으실 겁니다.)

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

Low-triangular matrix의 모든 eigenvalue는 diagonal elements이므로,가장 작은 eigenvalue가 diagonal element 중 가장 작은 것이 되는 것도 자연스럽습니다.

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

근데 이게

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

근데 이게

"(2n + d)의 weight를 가지고, 활성화 함수로 ReLU를 사용하는 2층 뉴럴 네트워크는

d차원의 n개의 샘플에 대한 어떠한 함수든 표현할 수 있다."

이거랑 뭔 상관일까요… 일단 Theorem 1에 대한 증명을 봅시다.

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

"(2n + d)의 weight를 가지고, 활성화 함수로 ReLU를 사용하는 2층 뉴럴 네트워크는d차원의 n개의 샘플에 대한 어떠한 함수든 표현할 수 있다."

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

"(2n + d)의 weight를 가지고, 활성화 함수로 ReLU를 사용하는 2층 뉴럴 네트워크는d차원의 n개의 샘플에 대한 어떠한 함수든 표현할 수 있다."

요걸 함수 형태로 나타내야 합니다.

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

"(2n + d)의 weight를 가지고, 활성화 함수로 ReLU를 사용하는 2층 뉴럴 네트워크는d차원의 n개의 샘플에 대한 어떠한 함수든 표현할 수 있다."

요걸 함수 형태로 나타내야 합니다.어떻게?

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

"(2n + d)의 weight를 가지고, 활성화 함수로 ReLU를 사용하는 2층 뉴럴 네트워크는d차원의 n개의 샘플에 대한 어떠한 함수든 표현할 수 있다."

요걸 함수 형태로 나타내야 합니다.어떻게?

이렇게!

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

"(2n + d)의 weight를 가지고, 활성화 함수로 ReLU를 사용하는 2층 뉴럴 네트워크는d차원의 n개의 샘플에 대한 어떠한 함수든 표현할 수 있다."

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

"(2n + d)의 weight를 가지고, 활성화 함수로 ReLU를 사용하는 2층 뉴럴 네트워크는d차원의 n개의 샘플에 대한 어떠한 함수든 표현할 수 있다."

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

"(2n + d)의 weight를 가지고, 활성화 함수로 ReLU를 사용하는 2층 뉴럴 네트워크는d차원의 n개의 샘플에 대한 어떠한 함수든 표현할 수 있다."

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

"(2n + d)의 weight를 가지고, 활성화 함수로 ReLU를 사용하는 2층 뉴럴 네트워크는d차원의 n개의 샘플에 대한 어떠한 함수든 표현할 수 있다."

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

좋습니다. 이제

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

좋습니다. 이제

D차원의 n개의 샘플에 대한 어떠한 함수도 될 수 있음을 보이면 될 것 같습니다.

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

좋습니다. 이제

D차원의 n개의 샘플에 대한 어떠한 함수도 될 수 있음을 보이면 될 것 같습니다.

그런데 이를 어떻게 보일까요.

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

약간 생각을 틀어서 생각해봐야할 것 같습니다.

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

약간 생각을 틀어서 생각해봐야할 것 같습니다.

샘플과 타겟의 벡터를 각각

, 라 해봅시다.

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

만약, 모든 1부터 n까지의 모든 i에 대해서

를 모두 만족시키는

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

만약, 모든 1부터 n까지의 모든 i에 대해서

를 모두 만족시키는

w, b, a를 찾을 수 있다면, 이는 샘플 S와 타겟 y에 대한 일대일함수 c를 찾을 수 있다는 것을 말합니다.

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

"모든 1부터 n까지의 모든 i에 대해서 를 모두 만족시키는 w, b, a를 찾을 수 있다"

는 동치입니다.

"(2n + d)의 weight를 가지고, 활성화 함수로 ReLU를 사용하는 2층 뉴럴 네트워크는d차원의 n개의 샘플에 대한 어떠한 함수든 표현할 수 있다."

따라서

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

그러면 좀 수식을 전개하면서 볼까요.

Page 37: Understanding deep learning requires rethinking generalization (2017)    2 2(2)
Page 38: Understanding deep learning requires rethinking generalization (2017)    2 2(2)
Page 39: Understanding deep learning requires rethinking generalization (2017)    2 2(2)
Page 40: Understanding deep learning requires rethinking generalization (2017)    2 2(2)
Page 41: Understanding deep learning requires rethinking generalization (2017)    2 2(2)
Page 42: Understanding deep learning requires rethinking generalization (2017)    2 2(2)
Page 43: Understanding deep learning requires rethinking generalization (2017)    2 2(2)

이거 되게 익숙한 식이죠?

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

이거 되게 익숙한 식이죠?

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

이거 되게 익숙한 식이죠?

A는 rank가 n!

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

이거 되게 익숙한 식이죠?

A는 rank가 n! n*n matrix의 rank가 n이므로,A는 invertible.

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

A는 invertible,

고로 임의의 a, b에 해당하는 w를 항상 찾을 수 있다.

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

"(2n + d)의 weight를 가지고, 활성화 함수로 ReLU를 사용하는 2층 뉴럴 네트워크는

d차원의 n개의 샘플에 대한 어떠한 함수든 표현할 수 있다."증명 완료.

논문에서는 좀 더 일반화된 형태의 명제도 다룹니다...만…(수식 레이텍으로 쓰기 힘들어요)

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

(개인적인 생각)

사실 FFNN의 Approximation Capabilities에 대한 이 문제는 Universal approximation theorem에 대한 연구와 함께 몇몇 연구에서 이미 조명되었던 사항입니다.

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

(개인적인 생각)

사실 FFNN의 Approximation Capabilities에 대한 이 문제는 Universal approximation theorem에 대한 연구와 함께 몇몇 연구에서 이미 조명되었던 사항입니다.

그럼에도 불구하고, 본 논문에서 이를 재조명한 이유는, 1) '일반적인 통념과는 달리, Universal approximation theorem이 Generalization을 보장해주는 것은 아니다'를 강조하고2) 특정 2 layer NN에 대한 Capability에 대한 증명을 직관적으로 보이도록 발전시켰기 때문인 듯 합니다.

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

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

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

본격적인 논의에 앞서, 본 섹션 도입에서는

'과연 우리는 딥러닝 모델 이전에 간단한 선형 모델에 대한 일반화라는 것에 대해서도 제대로 이해하고 있는가'에 대한 질문을 던집니다.

선형 모델에서의 일반화도 제대로 설명하지 못하는데, 딥러닝 모델에서의 일반화를 논하는 건 시기상조라는 거죠.

그래서 본 섹션에서는 SGD를 선형 모델에 적용시켜 수식을 전개합니다.

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

Nonnegative loss function을 가정하면, 일반적인 선형 모델의 ERM problem은 다음과 같을 것입니다.

x는 d차원의 feature vector이며, y는 label입니다.

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

Nonnegative loss function을 가정하면, 일반적인 선형 모델의 ERM problem은 다음과 같을 것입니다.

x는 d차원의 feature vector이며, y는 label입니다.

이를 를 푸는 것으로 바꿔 생각해봅시다.(따라서, X는 n*d 행렬입니다)

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

Nonnegative loss function을 가정하면, 일반적인 선형 모델의 ERM problem은 다음과 같을 것입니다.

x는 d차원의 feature vector이며, y는 label입니다.

이를 를 푸는 것으로 바꿔 생각해봅시다.(따라서, X는 n*d 행렬입니다)

d가 n보다 같거나 크게 되면 이 시스템은 Underdetermined입니다.

따라서, ERM problem에 대해서 다수의 global minima를 갖게 됩니다.

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

문제는, 이 다수의 global minima 중에 어떤 것이 가장 좋은 global minima인지 결정하기가 힘들다는 것입니다.(여기서의 '좋다'는 말은 '일반화를 잘한다'는 말과 동치입니다)

만약 minima의 quality를 결정할 수 있는 인덱스가 있다면, 이것은 비교적 쉬운 문제일 것입니다.

기존의 방법에는 각 solution에서의 loss function의 curvature를 보고 판단하는 방법 등이 있으나, 선형 모델은 모든 solution에서 curvature가 모두 똑같으니 이를 사용하는 것은 불가능합니다.

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

그래서, 저자들은 ‘SGD가 좋은 minima를 찾아주지 않을까'하는 믿음에 대해서 검증을 시작합니다.

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

그래서, 저자들은 ‘SGD가 좋은 minima를 찾아주지 않을까'하는 믿음에 대해서 검증을 시작합니다.

SGD는 보통 이런 방식으로 움직이죠.

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

그래서, 저자들은 ‘SGD가 좋은 minima를 찾아주지 않을까'하는 믿음에 대해서 검증을 시작합니다.

SGD는 보통 이런 방식으로 움직이죠.

다음 step에서의 weight 현재 weight step 사이즈 예측 에러

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

그래서, 저자들은 ‘SGD가 좋은 minima를 찾아주지 않을까'하는 믿음에 대해서 검증을 시작합니다.

SGD는 보통 이런 방식으로 움직이죠.

그럼 이 식으로 w를 풀어봅시다.

다음 step에서의 weight 현재 weight step 사이즈 예측 에러

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

만약 이면,

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

만약 이면,

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

만약 이면,

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

만약 이면,

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

다시 말하면,SGD에 의해서 찾아진 weight는 data point의 vector space에 span합니다.

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

다시 말하면,SGD에 의해서 찾아진 weight는 data point의 vector space에 span합니다.

이렇게 찾아진 w를 라 두고, 우리가 원래 풀려고 했던 식인

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

다시 말하면,SGD에 의해서 찾아진 weight는 data point의 vector space에 span합니다.

이렇게 찾아진 w를 라 두고, 우리가 원래 풀려고 했던 식인

를 SGD로 찾아낸 w로 풀어봅시다.

Page 68: Understanding deep learning requires rethinking generalization (2017)    2 2(2)
Page 69: Understanding deep learning requires rethinking generalization (2017)    2 2(2)
Page 70: Understanding deep learning requires rethinking generalization (2017)    2 2(2)

n*n matrix n vector

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

n*n matrix n vector

따라서, SGD에 의하면 는 Unique하게 결정됩니다.

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

n*n matrix n vector

따라서, SGD에 의하면 는 Unique하게 결정됩니다.

ERM problem의 무수히 많은 solution 중에서 단 하나만을 찾습니다.

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

n*n matrix n vector

게다가 를 일종의 kernel matrix처럼 사용해도 무방합니다. 만약 여기에 다른 커널들을 걸게 되면 SVM에서 많이 보게되는 kernel trick의 꼴을 띄게 됩니다.

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

n*n matrix n vector

게다가 를 일종의 kernel matrix처럼 사용해도 무방합니다. 만약 여기에 다른 커널들을 걸게 되면 SVM에서 많이 보게되는 kernel trick의 꼴을 띄게 됩니다.

Kernel trick에 대해서 처음 들어보신다면, (적어도 여기에선)에 pre-processing을 한 사진을 갖다가 걸어줘도 괜찮다는 의미로

받아들이셔도 무방합니다.

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

n*n matrix n vector

물론 그런 식으로 kernel trick을 걸어주게 되면, 같은 데이터에 대한 것일지라도 각각의 kernel에 해당하는 optimal 는 달라질 것입니다.

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

추가적으로 보충하고 넘어가야하는 SGD의 훌륭한 점은,이와 같은 solution이 L2-norm을 최소화하는 것과 동치라는 것입니다.

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

추가적으로 보충하고 넘어가야하는 SGD의 훌륭한 점은,이와 같은 solution이 L2-norm을 최소화하는 것과 동치라는 것입니다.

간단한 시스템의 least-norm solution이

이고,

SGD에 의한 kernel solution으로 푸는 것이

, 등의 수식에서 기인한 것임을 생각해보면, 직관적입니다.

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

본 논문에서는위 식을 MNIST와 CIFAR10에 대해서 풀어봅니다.

물론 n이 60,000개까지 올라가므로, LAPACK 병렬화, 24코어 시스템, 256GB RAM 등을 이용합니다.

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

실험 결과를 정리하면 다음과 같습니다.

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

실험 결과를 정리하면 다음과 같습니다.

단순한 선형 모델치고는 꽤 훌륭해 보입니다.

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

실험 결과를 정리하면 다음과 같습니다.

단순한 선형 모델치고는 꽤 훌륭해 보입니다.특히, 커널에 따라서 꽤 많이 test error가 달라지는 것을 볼 수 있습니다.

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

SGD는 그 자체로 어느 정도 일반화 능력을 내포하고 있는 것처럼 보입니다.

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

SGD는 그 자체로 어느 정도 일반화 능력을 내포하고 있는 것처럼 보입니다. 이유를 꼽아보라면, 그 자체로 L2 regularization을 암시하기 때문입니다.

For linear models, SGD always converges to a solution with small norm.Hence, the algorithm itself is implicitly regularizing the solution.

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

하지만, 논문은 이러한 논리에는 조금 문제가 있다고 주장합니다.

왜냐하면 MNIST 실험에서의 경우 none pre-processing의 경우가 220의 L2 norm을 가진 데에 반해, gabor filter pre-processing은 390의 L2 norm을 가졌기 때문입니다.

220 L2-norm390 L2-norm

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

하지만, 논문은 이러한 논리에는 조금 문제가 있다고 주장합니다.

왜냐하면 MNIST 실험에서의 경우 none pre-processing의 경우가 220의 L2 norm을 가진 데에 반해, gabor filter pre-processing은 390의 L2 norm을 가졌기 때문입니다.

이는 모델의 L2-norm과 일반화 능력에 대한 기존의 관점과 대치되는 부분입니다.

220 L2-norm390 L2-norm

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

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

'어느 정도는 맞는데, 그것도 완전히 맞지는 않는다'

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

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

'어느 정도는 맞는데, 그것도 완전히 맞지는 않는다'

또 미적지근...

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

논문의 결론

우리는 뉴럴 네트워크 모델의 '일반화'라는 것에 대해서 거의 이해하지 못하고 있다!

그리고…

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

논문의 결론

우리는 뉴럴 네트워크 모델의 '일반화'라는 것에 대해서 거의 이해하지 못하고 있다!

그리고…

“We believe that understanding neural networks requires rethinking generalization.”

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

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