- 2020년 7월 3일 오후 8:28
- 조회수: 4840
REFERENCES
INFORMATION
- 2020년 7월 17일
- 오후 1시 ~
- 고려대학교 신공학관 218호
TOPIC
OVERVIEW
발표자 후기
오늘 발표를 진행하기 위해 여러 논문을 읽어보았는데 Goodfellow라는 청년에 대해 다시금 생각했다. Goodfellow는 오늘 세미나에서 소개한 "The Fast Gradient Sign Method"의 저자로 GAN을 처음으로 제안한 저자이기도 하다. 그는 항상 현 AI의 상황을 기초적인 단계에서 tackle한다. AI 전공자라면 누구나 연구실에서 Image 및 CNN을 손쉽게 접하며 한번쯤은 응용해봤을 것이다. Goodfellow도 분명 연구실에 앉아 이런저런 연구를 할텐데 "Input 이미지를 조금만 변형했을 때 CNN 성능이 어떻게 변할까?"라는 생각을 했다. 그리고 그 생각이 Adversarial attack & defense 연구분야의 근간이 되었다. 그동안 컴퓨터공학과 AI전공자들은 힘을 쏫는 연구분야의 결이 다르다고 생각했는데 그 친구는 생각이 뿌리가 다른 것 같다. 즉, AI 연구분야의 뿌리를 만들고 다른 연구자들은 줄기에 가지를 낸다. 우리는 산업공학과에서 AI을 전공하는 대학원생으로, AI 방법론으로 여러 문제를 정의하고 해결해 나간다. 그 가치 역시 더할나위 없지만 앞으로도 이 분야에 몸담을 한 연구자로써 한번쯤은 그 정도의 파격력 있는 연구를 하고 싶다는 생각을 했다. 이번 세미나를 준비하며 그의 업적을 좀 더 자세히 알게 된 Goodfellow는 나에게 본보기가 되었던, 말그대로 좋은녀석(Good fellow)이다. 끝으로 오늘 소개했던 개념과 방법론이 연구원들에게 잘 전달되었기를 바라며 본 세미나로부터 본인들의 연구를 확장시킬 수 있는 계기가 되길 바랍니다. 감사합니다.
청취자 후기
금일 세미나는 'Adversarial attacks and defenses in deep learning' 이라는 주제로 윤상이가 진행을 하였다. 'Adversarial attack' 이라는 것은 딥러닝 모델의 입력 이미지가 인간이 시각적으로 확인하기 어려울 정도의 변경이 발생할 때, 예측 결과가 달라지는 문제를 의미한다. 미세한 변화 발생에도 불구하고 강건한 예측 성능을 가진 딥러닝 모델을 개발하기 위해 Adversarial attacks and defenses라는 연구 분야가 등장했다. 또한, 모델 강건화와 동시에 Adversarial attack을 유발하는 데이터를 정확한 레이블로 학습시켜 데이터 증강 기법을 대신하는 사례도 소개해주었다.
요즘 자가학습에 많은 관심을 가지고 있는 나로써는 굉장히 흥미로운 주제였다. 최근 SimCLR이라는 알고리즘에 대해 설명을 들었는데, 이와도 연관성이 있는 것으로 파악했다. Adversarial attack을 유발하게 하는 이미지들을 어떻게 생성하는지에 대한 연구를 확인함으로써, 자가학습의 방법의 아이디어를 떠 올릴 수 있을 것 같다는 생각이 들었다. 새로운 주제를 준비하고, 알기 쉽게 설명해준 윤상이에게 고맙다고 말하고 싶다.
최근 들은 세미나 중 가장 직관적이고 이해하기 좋았다. 사람은 구분할 수 없을 정도의 미세한 deformation은 Deep learning의 성능에 악영향을 준다는 내용이다.
attack의 주된 방법으로는 cost가 증가하도록 feature에 gradient를 주는 FGSM, 간단히 sticker를 붙이는 patch, Universal 하게 example을 생성하는 UAP라는 방법이 있고, 이러한 attack으로부터 defense하는 방법으로는 adversarial example을 augmentation data로 활용하여 함께 training하거나, hard classification이 아니라 distilled network를 통해 smoother classification 하는 방법, 또는 vgg19 를 backbone으로 사용하는 detector로 noise를 탐지하는 방법이 존재한다. 내용의 흐름과 hierarchy가 굉장히 잘 들어왔다.
보안 분야에는 별 흥미가 없었으나, patch 를 통해 자율주행자동차의 주행 성능이 급격하게 하락한다는 내용을 듣고, Adversarial attack이 단순히 보안 강화 뿐 아니라, 모든 학습에 사용될 수 있는 오버샘플링 기법 중 하나로써 다양하게 적용될 것 같다.
Augmentation이랑 느낌은 좀 다르지만 그래도 나중에 train data가 작을 때, 단순히 flip 이나 rotation 등의 고전적 방법의 대체로 사용해도 좋을 것 같다. 세미나 시간이 1시간도 되지 않았지만, 그래도 compact하게 많은 것을 배웠다. 윤상이형께 감사의 말씀을 드리고 싶다.
오늘 세미나는 "Adversarial Attacks and Defenses in Deep Learning"이라는 주제로 진행되었습니다. 딥러닝은 다양한 분야에서 좋은 성능을 보이지만 딥러닝 모델이 작은 변화에도 취약할 수 있다는 사례를 보여주는 연구가 최근에 많이 나오고 있습니다. 딥러닝 모델이 잘 동작하지 못하도록 만드는 행위를 "Adversarial Attack"이라고 하며 모델의 성능을 저하시키는 데이터를 "Adversarial Example"이라고 합니다. Adversarial example을 만드는 방법으로 이번 세미나에서는 "Fast Gradient Sign Method(FGSM)"가 소개되었습니다. FGSM은 기존의 데이터에 약간의 변화(perturbation)를 줘서 adversarial example을 만드는 방법론입니다. 기존의 데이터로 모델의 cost function을 계산한 후 cost function의 gradient에 sign function을 적용하여 기존의 데이터를 변화시키는 노이즈로 활용하게 됩니다. 기존 모델은 cost function을 감소하는 방향으로 학습이 되지만 cost function을 증가시키는 gradient 방향의 노이즈를 더해줌에 따라 해당 데이터의 cost function이 증가하게 되고 해당 데이터는 모델에서 정확하게 구분될 수 없게 됩니다. 이외에도 adversarial example을 만드는 방법론으로 "Adversarial Patch", "Universal Adversarial Perturbation"이 소개되었습니다. Adversarial patch는 기존의 이미지에 patch를 붙여 나가며 모델의 성능이 저하되는 데이터를 생성해 나가게 됩니다. Universal Adversarial Perturbation은 각 class 별 decision boundary를 벗어날 수 있는 최소한의 벡터들을 순차적으로 찾아낸 후 해당 벡터를 모두 더하여 모든 데이터가 기존의 class에서 벗어날 수 있도록 하는 perturbation vector를 찾는 방법론입니다. Adversarial attack이 연구됨에 따라 이에 대응하는 "Adversarial Defense" 방법론들도 연구되고 있으며 이번 세미나에서도 몇 가지 방법들이 소개되었습니다. "Adversarial Training"은 adversarial example을 생성하여 기존 데이터와 함께 모델을 학습시키는 방법론으로 이렇게 학습된 모델은 기존 모델보다 adversarial attack에 강건하게 됩니다. 두 번째로 소개된 방법론은 "Defensive Distillation"으로 기존의 네트워크에서 나온 logit값을 라벨로 활용하여 모델을 학습시키는 방법론으로 label이 smoothing 되기 때문에 기존의 모델에 비해 강건한 모델이 만들어지게 됩니다. 이번 세미나를 통해서 adversarial attack이라는 새로운 분야를 접할 수 있어 유익한 시간이었습니다. 세미나를 열심히 준비해준 윤상이 형에게 감사의 뜻을 표하며 세미나 후기 마치도록 하겠습니다.
금일 세미나는 Adversarial Attacks and Defenses in Deep Learning에 대한 주제로 윤상이가 발표했다. 딥러닝 방법론은 다양한 테스크에서 높은 성능을 보이지만 기존 데이터에 노이즈가 생기면 성능이 현저하게 낮아지는 문제가 있다. 이러한 문제는 Adversarial Attacks와 Defenses 방법으로 해결한다. Adversarial attacks는 딥러닝 모델의 비용 함수에서 기존 데이터에 대한 그레디언트를 계산하고 Sign 함수를 취하여 Adversarial examples를 만든다. 딥러닝 모델은 Adversarial examples에 대한 성능이 현저히 낮아지기 때문에 Attack에 대한 Defense 방법이 고안되어야 한다. Defense 방법에는 다양한 방법이 존재하며 Adversarial examples이 사용될 때 딥러닝 모델에 대한 높은 성능을 유지하도록 한다. 최근 ICML 학회로부터 Adversarial attacks에 대한 연구가 활발하게 진행되고 있어 궁금한 분야 중 하나였다. 이번 세미나를 통해 개념을 익힐 수 있었고 ICML 학회에 채택된 연구를 관심있게 보며 추후 Data augmentation 진행 시 고려해볼 필요가 있다고 생각한다.
오늘 세미나는 윤상오빠가 "Adversarial Attacks and Defenses in Deep Learning"이라는 주제로 진행하였다. 딥러닝은 다양한 분야에서 다양한 알고리즘으로 우수한 성능을 보이며, 많은 인기를 누리고 있다. 오늘 세미나는 딥러닝의 주요 요소로 제기되고 있는 ‘over fitting, and robustness’에 대한 개선점으로 알려진 ‘Adversarial attacks, and defenses’에 대해 다루었다. 딥러닝이 의사결정을 하는 연산과정이 사람이 판단하는 특징과는 다를 수 있다. 따라서, 사람이 판단하기에 변화가 없는 정도로 데이터에 작은 변화를 부여하는 것 만으로도 모델이 판단하는 특징의 변화가 발생할 수 있으며 이로 인해 오분류가 되는 경우가 발생한다. 이는 반대로 관점을 바꾸어 생각하면, 모델 기준으로 오분류를 하도록 하는(헷갈리게 만드는)데이터를 생성하여 추가적으로 학습에 활용하게 하면 보다 일반화성능을 확보하는 robust한 모델을 구축할 수 있다. 모델 기준 헷갈리는 데이터(adversarial examples)를 생성하는 과정이 adversarial attacks에 해당된다면, 이러한 추가 데이터를 loss function에 반영하여 decision boundary구축을 잘하기 위한 부분이 adversarial defenses이다. 오늘은 attack에 대한 여러 방법론, defenses에 대한 여러 방법론에 대해 직관적으로 설명을 들을 수 있었다. 특히, adversarial attack을 제안한 초기 문헌 중 FGSM은 본 데이터의 gradient방향으로 데이터에 노이즈를 부여한다. 즉, loss function을 키우는 방향으로 데이터를 augmentation하는 기법이다. 또한, defense의 방법으로는 실제 레이블이 아닌 초기 모델에서의 output probability를 기준으로 모델을 학습하는 defense techniques가 인상적이었다. probability를 예측하는 문제로 변환하게 되면서 자연스럽게 label smoothing효과를 보일 수 있으며, 기술적으로도 간단해 보였기 때문이다. Adversarial examples에 대한 설명으로 연구의 확장에 대해 고민해보았을 때, open set recognition연구에서 decision boundary를 설계하는 과정에 도움이 될 만한 data augmentation 방법론이 될 수 있다고 생각했다. 이외에도 다양한 분야에 적용시켜볼 수 있을 것 같아 유익했다. 항상 윤상오빠의 세미나는 핵심적으로 명료하게 전달 하여금 청자들도 깔끔하게 이해할 수 있는 시간인 것 같다. 이렇게 잘 설명해주기까지 여러 문헌을 탐색하고, 정리해준 윤상오빠에게 감사하다는 말로 세미나 후기를 마친다.
“Adversarial Attacks and Defenses in Deep Learning”의 주제로 진행된 금일 세미나는 인풋의 작은 변화로 딥러닝 모델을 혼란스럽게 만들 수 있다는 단점이자 문제점을 개선하기 위하여 시작된 분야에 대하여 알아볼 수 있었다. 여기에서 ‘인풋의 작은 변화’에 해당하는 Adversarial Examples는 기존 데이터에 Perturbation이라는 작은 변화를 추가하여 딥러닝 모델의 관점에서 변화를 인식하도록 만드는 데이터들이다. 이러한 Adversarial Example을 실제 AI 모델에 적용시키는 과정을 Adversarial Attack이라 한다. Adversarial Attack은 기존 모델의 학습 방향과 반대로 기울기 방향을 이동하도록 만들어 모델에게 혼란을 주게 된다. 이번 세미나를 통하여 알아본 Adversarial Attack의 한 방법론은 The Fast Gradient Sign Method로, gradient에 Sign 함수를 취한 값, 즉 -1, 0, 1만큼 이동하는 방법론이다. 이 외에도 Adversarial Attack의 여러 방법론들은 모두 Adversarial Example이 들어오더라도 모델이 잘 예측하도록, 그리고 모델의 일반화 능력을 향상시키도록 만드는 것을 목표로 삼고 있다. 뿐만 아니라 이에 대응하는 Defense 방법론들도 연구가 되고 있어 이에 대한 다양한 알고리즘들의 예시도 함께 들을 수 있었다. 강건하고 정확한 모델을 만드는 것을 목표로 연구되고 있는 해당 분야가 오버피팅의 방지, 보안, 오버샘플링 등에서도 아이디어가 활용될 수 있을 것이라는 발표 후의 토론을 통하여 한 분야의 아이디어가 반드시 그 분야에서만 활용되는 것은 아님을 다시 느낄 수 있었다. 또한, 이와 같이 새로운 분야에 대하여 알게 될 때 추후 나의 연구에 어떻게 아이디어를 얻어 적용할 수 있을지 생각해보는 것이 더욱 중요하고 필요하다는 생각이 들었다. 이번 세미나를 통하여 Adversarial Attacks and Defenses이라는 새로운 분야에 대하여 알게되고 다양한 방면으로 생각할 수 있어 매우 의미 있는 시간이었다.
오늘 세미나는 Adversarial attacks and defenses in deep learning을 제목으로 조윤상연구원이 진행하였다. Adversarial이라는 말은 보통 GAN에서 임의의 가짜 데이터를 만드는 것으로만 들었었는데 오늘은 새로운 방향으로 시각을 넓혔다.
노이즈로부터 가짜 데이터를 만들어서 구분을 하게하는 GAN과 달리 원래 데이에 노이즈를 추가하여 Adversarial Data라고 하고 학습에 사용을 하는 방법이다. 이미지로부터 Adversarial Data를 만드니 사람의 눈으로는 구분이 되지 않아서 결국 학습시에는 진짜처럼 인식하게만드는 방법이다. 원본에 원치 않는 노이즈가 생기는 경우에도 모델이 강건하게 하기 위한 방법이었다. 단순히 노이즈를 추가하는 것이 아니라 노이즈를 “원하는 방향”으로 줄 수 있다는 것도 새롭게 보였었다.
특히 Defense Distillation은 흥미로운 주제였었다. Label결과가 아닌 학습을 통해 나온 result를 다시 학습의 결과로 넣는다는 것이 어떻게 정확도를 향상시킬 수 있을까 의문이 있었다. 하지만 Smoothing이라는 개념과 강현구연구원이 “원래의 Label 정확도에 대한 의심”도 해야한다는 답을 주어 이해가 쉽게 될 수 있었다.
같은 것을 계측하더라도 하드웨어에따라 오차가 있을텐데 하나의 계측기로만 학습한 것은 문제가 발생할 수 있다. 노이즈가 생긴 다른 하드웨어의 오류를 잡아내지 못하는 경우가 생길 수도 있다. 이런 경우 오늘 세미나에서 배운 것처럼 노이즈에 강건한 모델을 만든다면 다양한 하드웨어에도 대응할 수 있는 범용 모델이 될 것이라고 생각한다.
깔끔한 세미나와 더불어 토론 시간에도 서로 도움을 주니 많은 것을 얻어갈 수 있는 세미나였었다.
윤상아 수고했다!
금일 세미나는 'Adversarial attacks and defenses in deep learning' 이라는 주제로 진되었다. 최근 딥러닝에서는 어느정도 데이터가 많은 상태에서는 꽤 괜찮은 성능을 보여주고 있다. 하지만 육안으로는 거의 차이가 없지만 데이터에 작은변화 "Perturbation"이 적용되면 딥러닝 모델의 퍼포먼스가 매우 낮아지는 경우가 보인다. 이를 "Adversarial attack"이라고 표현한다. 예를 들어 팬더의 오리지널 사진에 Perturbation 0.001 정도 적용된 사진을 기존에 잘 동작하는 모델에서 classification을 진행하면 기존에 팬더라고 잘 판단하던 모델이 갑자기 긴팔원숭이라고 잘못 판단하게 된다. Perturbation의 방법은 여러가지 있는데 그중 "The Fast Gradient Sign Method"방법을 알려주었다. 간단하게 Gradient기울기 방향으로( Epsilon)만큼 이동하여 Cost가 증가하도록 학습하게 하여 Misclassification이 발생하도록 만드는 것이다. 왜 인간은 육안적으로 구별이 어려운가에 대해 인간은 저차원의 세계에서 데이터를 보고 모델은 모든 픽셀 변화를 감지하는 고차원의 세계에서 데이터를 보기 때문에 차이가 나는것으로 설명이 가능하다. 이를 잘 보안하기 위해 여러가지의 "Defense" 방법이 있는데 Adversarial data도 같이 Input에 학습을 시켜서 Adversarial data도 잘 Defense 하도록 하였다. Adversarial 방법은 여러가지 있는데 그중 단순히 사용되는 data 에 단순 sticker를 붙이면 accuracy가 감소하는 방법도 있고 원본데이터가 Decision boundary를 벗어나는 최소한의 벡터를 찾아 모든 데이터에 일괄 적용할 수 있는 v를 찾아서 사용하는 방법도 있다.
이 Adversarial attacks&Defense 방법은 보안 분야에서 중요하다는 것을 깨달았다. 특히 자율주행자동차의 주행 성능에 영향을 줄수 있다는 것에 중요성을 알게 되었다.
좋은 발표를 해준 윤상이에게 감사한 마음을 전달한다.
금일 세미나는 윤상이가 adversarial attack and defense을 주제로 진행하였다. Adversarial example은 perturbation을 통해 약간의 노이즈를 주어 원본 데이터와는 큰 차이가 없어보이지만(타겟값은 원본과 동일하지만) 딥러닝 모델이 테스크를 제대로 수행하지 못하게끔 모델을 혼동시게끔 만들어진 데이터를 의미한다. 이렇게 고의적으로 생성된 데이터는 모델의 robustness를 저해할 수 있으며(attack) 이는 자율주행이나 사이버보안과 같이 실제 상황에서의 딥러닝 모델 적용의 위험성을 의미한다. 관점을 바꾸어 이렇게 모델의 성능을 떨어트릴 수 있는 데이터를 잘 생성하게 되면, 이러한 데이터를 모델 학습에 추가적으로 적용하여 모델의 overfitting을 방지하고 robustness를 확보할 수 있을 것이다(defense). 이번 세미나는 Adversarial attack의 기초적인 방법인 Fast Gradient Sign Method를 중점으로 진행되었는데,딥러닝 모델의 파라미터의 학습에 사용되는 loss function을 데이터에 대한 gradient를 계산하고 sine function을 적용한 후 epsilon step만큼 이동하여 생성되는 데이터를 만들게 된다. 데이터를 생성하는 논리와 방법론이 매우 타당하다고 생각되는 논문이였다. 다만 이미지 데이터 이외에 텍스트나 센서 데이터 등 이미지가 아닌 데이터에 그대로 적용하기에는 무리가 있지 않을까라는 생각이 들었다. 이어 defense 방법으로 adversarial training 방법을 소개해주었는데, 이는 original loss와 perturbation loss를 결합하여 모델을 학습하는 방법이였다. 세미나 후반부에서는 adversarial attack and defense를 더 잘 수행할 수 있는 몇몇 방법론을 간략하게 소개해주고 마무리되었다. 이번에 ICML 세션을 살펴보면서 adversarial attack 관련한 논문들이 생각보다 많았다. 윤상이 세미나 덕에 이쪽 분야에 대해서 알게 되었고 기초적인 이론들을 잘 설명해주어 관련 페이퍼를 좀 더 읽어봐야겠다는 생각이 들었다. 좋은 세미나를 해준 윤상이에게 감사하다.
Adversarial Attacks & Defenses에 관한 세미나를 청취했다. 하나의 이미지에 약간의 변화를 주더라도, 사람은 여전히 그 이미지의 클래스가 변하지 않았다는 것을 알고 있다. 하지만 딥러닝 모델은 그러지 못하고 아예 다른 클래스로 예측하는 현상이 일어나며, 이러한 사례를 adversarial examples라고 한다. 이렇게 이미지에 변화를 주어서 모델을 멍청하게 (fool) 만드는 것을 adversarial attack이라고 하며, 이러한 시도를 잘 막아서 모델을 강건하게 만드는 것을 adversarial defense라고 한다. 널리 알려져 있는 GAN에서도 이런 개념이 사용된다. 오늘 세미나에서는 두 가지 내용에 대해서 간단한 예시를 들어서 설명을 해주었다. Adversarial examples를 활용한 연구에는 많은 것들이 있겠지만, 결과적으로는 다양한 attack에도 기존 성능을 유지하는 robust model를 만드는 것이 최종 목표가 아닐까 생각한다. 또한, 데이터의 종류에 따라 attack을 하는 방식도 다양할텐데, 세미나 중간에 토론이 되었던 것처럼 이미지는 '누구나 공감할 수 있는 방식'이 있는 반면, computer vision이 아닌 다른 분야에서는 도메인 지식에 기반해서 attack을 해야 하는 어려움이 있을 것으로 생각된다. 전체적으로 간단한 컨셉을 이해하기 쉽게 설명해주었지만, 개인적으로는 한 논문에 대해서 테크니컬한 부분도 소개해줬었으면 하는 아쉬움이 있었다.
금일 세미나는 "Adversarial attacks and defenses in deep learning" 주제로 윤상이형이 세미나를 진행해주었다. 사람의 육안으로 구분이 어려운 새로운 데이터에 대해 딥러닝의 성능에 큰 저하를 불러 일으키는 문제를 해결하기 위한 방법론에 대한 이야기로 모델의 성을 낮추는 새로운 데이터를 생성하는 방법인 'Adversarial attack', 이에 대하여 모델의 성능을 유지하기 위한 'Defense against adversarial attacks' 기법까지 해당 연구 분야가 탄생하게 된 배경부터 기본적인 이론부터 적용 분야까지 청취자들이 이해하기 쉽게 세미나가 진행되었다. 세미나를 들으며 가장 인상깊었던 부분은 세미나 주제 내용에 관해 확실하게 이해해야 하는 부분에서는 시각적인 장표나 설명이나 세세하게 설명하고, 보다 심화적인 내용은 참고 자료에 대해 알려주고 직관적인 이해만 돕고 넘어갔던 부분이다. 세미나를 듣는 내내 질문을 할 필요 없이 윤상이형이 준비한 내용에 대해서 다 이해할 수 있어서 좋았다. 그리고 해당 주제에서 Adversarial attack을 통한 새로운 데이터 생성이 Under Sampling 기법으로 활용할 수 있을 것 같다고 생각되고, 현재 진행 중인 프로젝트에서 Class Imbalance 문제를 Adversarial attack 기법을 통해 해결할 수 있을 거 같아 긍정적인 도움을 얻을 수 있었다. 유익한 주제로 세미나를 준비해준 윤상이형에게 감사하다고 전하고 싶다.
금일 세미나는 ‘Adversarial attacks and defenses in deep learning’이라는 주제를 가지고 진행하였다. Adversarial data는 기존의 data에서 perturbation(작은 변화)이 들어오게 되면 모델의 정확도를 낮추게 된다. Adversarial attack은 perturbation이 존재하는 데이터들이 딥러닝 모델에 들어오게 되면 모델이 헷갈리도록 만드는 것이며 이러한 방법으로는 adversarial patch, universal adversarial perturbation등이 있다. Adversarial defense는 이러한 데이터가 들어와도 강건한 정확도를 가지는 딥러닝 모델을 만들고자 하는 것이다. Defense Techniques에는 adversarial training이라는 방법이 있는데 attack에 대해 좀 더 강건한 모델을 구축해서 data augmentation 효과를 얻을 수 있다는 점이 흥미로웠다. 다소 생소한 주제였지만 전반적인 컨셉에 대해 이해하기 쉽게 세미나를 진행해준 윤상이형에게 감사하다는 말을 전하고 싶다.
오늘 세미나는 Adversarial attacks and defenses in deep learning이라는 주제로 윤상 오빠가 진행해주었다. 그동안 들었던 수업에서도 해당 분야에 대해 다뤄져서 수업을 들었던 적이 있다. 하지만 오늘 세미나를 들으면서 이렇게 쉽게 이해되는 분야였던가? 생각이 들었다. 군더더기없이 너무 설명이 깔끔하게 해주어서 내용이 쉽게 이해되었고 시간도 오래 걸리지 않아서 좋았다. 왜 해당 개념이 등장하게 되었는지에 대한 설명을 시작으로 기본 알고리즘, 그리고 그 외 다른 방법론과 활용 분야의 흐름으로 전반적인 내용을 다루면서도 기본 개념에 대해서 하나하나 풀어서 이해되기 쉽게 설명해주었다. 항상 배울 점이 많고 멋진 동기인 윤상오빠에게 좋은 주제로 세미나를 진행해주어 고맙다고 이야기해주고 싶다.
딥러닝 이전 모든 머신러닝 모델이 그러하였듯이 딥러닝 모델도 과적합(overfitting) 문제에서 자유로울 수 없다. 방대한 양의 학습 데이터로 높은 정확도를 보여주긴 하지만, 그만큼 학습해야 할 파라미터의 수도 함께 증가하였기 때문에 신경망의 과적합을 방지하기 위한 연구는 계속되어야 한다. 딥러닝 뿐 아니라 모든 머신러닝 모델에서 우리가 추구하는 이상적인 모델은 입력 값 x의 작은 변화에 출력 값 y 값이 interpolate/extrapolate 되는 모델이다. 하지만 학습 파라미터 수가 많아지면 변수 공간에 모델이 학습하지 못하는 작은 틈들이 생겨 일반화 성능이 떨어지기 마련이다. Adversarial Training은 수 많은 과적합 방지 연구 중 하나로, 모델의 손실함수 값을 증가시키는 방향으로 입력 데이터를 비틀었을 때도 모델의 예측 성능이 저하되지 않도록 하는 학습 기법이다. 이름이 생소하여 우리에게 다소 낯설 수 있지만 결국 out-of-distribution 데이터에 대한 일반화 성능을 끌어올리기 위한 하나의 테크닉이다. 과적합을 방지하기 위한 목표 아래 다양한 이름으로 연구들이 진행되고 있는 만큼 껍데기에 현혹되기보단 핵심에 집중하여 연구 트렌드를 읽을 필요가 있다고 느낀다.
금일은 Adversarial Attack and defenses in deep learning이라는 주제로 세미나가 진행되었다. Adversarial Attack이라는 주제를 처음 들어보았기 때문에 어떤 내용이 소개될지 정말 궁금했다. 세미나는 먼저 판다 사진을 예시로 Adversarial examples에 대한 설명이 진행되었다. Adversarial examples는 원본 이미지에 작은 변화(Perturbation)을 주어 원본 이미지와 매우 유사한 데이터를 만드는 것이다. Adversarial examples은 딥러닝 모델이 학습할 때 혼란을 주게 되어 모델 성능을 하락하게 만들고 이를 Adversarial Attack이라고 한다. Adversarial Attack은 딥러닝 모델에 좋지 않은 영향을 주는 것이기 때문에 이를 방어하며 딥러닝 모델이 더 잘 학습할 수 있는 Adversarial Defense라는 방식도 존재하게 된다. 딥러닝 모델의 Cost Function이 원본 데이터에 대한 비용 함수와 Adversarial example(=data)에 대한 비용 함수식으로 구성된 것이 특징이다. 이러한 Adversarial Defense는 딥러닝 모델의 일반화 성능을 높일 수 있다는 장점이 있다. 이번 세미나는 처음 듣는 개념들에 대한 설명이어서 정말 흥미롭게 들었던 것 같다. 개인적으로는 Data Augmentation과 비슷한 개념이라고 생각이 들었던 것 같다. 원본 데이터에 작은 변화를 줘 원본 데이터와 유사한 학습 데이터 수를 늘린다는 개념이 유사해서이다. 이번 세미나에서는 이미지에 대한 사례를 중심으로 설명이 되었다. 개인적으로는 영상 데이터나 Signal 데이터 등 다른 특성의 데이터에서는 어떻게 작동할 수 있을지에 대한 고민을 하게 됐다. 좋은 세미나를 준비해준 윤상이에게 감사함을 표한다.
금일 주제는 Adversarial Attacks and Defenses in Deep learning으로 신선하고 재미있는 주제였다. 오늘날 딥러닝은 뛰어난 성능으로 다양한 산업 분야에서 다양하게 활용되고 있다. 다량의 데이터로 학습되는 딥러닝은 데이터의 품질에 따라 성능이 바뀔 수 있는데, 오늘 세미나는 딥러닝 성능에 악영향을 끼치는 Adversarial Attack과 이 악영향에도 강건하게 학습할 수 있는 방법론 Adversarial defense에 들을 수 있었다. Adversarial Attack은 데이터에 미묘한 변화(Perturbation)을 더해 진행된다. 이 때, '미묘한 변화'의 핵심 아이디어는 학습 Loss function을 데이터 방향으로 증가하게 하는 것으로 'The Fast Gradient Sign Method'(2015)에서 제안하였다. 딥러닝은 아주 복잡한 신경망 구조로 이루어져 input 작은 Perturbation도 큰 오류를 범하게 만들 수 있다는 것을 쉽게 이해할 수 있는 자료로 설명되어 있어서 정말 좋은 세미나를 듣고 있구나라고 생각하였다. Defense 방법으로는 Perturbation이 더해져 만들어진 Adversarial data의 Loss와 Original data의 Loss을 더한 최종 Loss를 최적화 시킴으로써 학습된다. 여기까지 기본적인 Attack과 Defense 방법의 핵심 아이디어를 이해할 수 있었고, 다른 Attack, Defense 방법 이슈들도 세미나에서 소개해주었다. 이미지 사진에 패치를 붙여 Perturbation을 만드는 방법, 구축된 데이터셋에 한꺼번에 Perturbation을 만들어주는 방법, Adversarial data를 판별하는 Classifier를 모델 구조에 추가하는 방법 등 다양하게 세미나에서 접할 수 있었다. 위 방법론들은 분석 데이터 내 Noise가 존재하는 데이터셋에 정확하고 강건한 예측모델을 구축하는데 활용될 수 있으며, 재밌고 흥미로운 주제를 잘 풀어주신 윤상이 형에게 감사드립니다.
일반적으로 보안 domain에서 ‘공격’측은 공격대상에 대한 정보를 갖고 있지 않는 경우가 대부분(Black-box Attack)인데, 이번에 주력으로 소개된 FGSM 방법론은 미리 모델에 대한 정보(Cost함수 등)을 이미 알고 있다고 가정하는 white-box attack이었다. 그래서 사실 공격측보다는 방어하는 측에게 좀 더 의미를 갖는 방법론이다. 큰 맥락에서 보자면 본 분야는 다양한 input(e.g 의도적인 Adversarial Attack, 공정데이터의 노이즈)에 대해서 미리 robust하게 모델을 train시키자라는 의의를 갖는다.
발표에서는 Image Classification 관련된 예제를 들어주셨는데 찾아보니 RNN(1)이나 Reinforcement Learning(2)에서도 나타날 수 있다고 한다.([1]:Black-Box Attacks against RNN based Malware Detection Algorithms, Hu and Tan. 2017 / [2]:Adversarial Attacks on Neural Network Policies, Huang et al. 2017). 다시 말하자면 현재 흔히 사용되는 딥러닝 구조들(MLP, CNN, RNN, 다양한 RL) 은 작은 noise에도 쉽게 오작동하므로, CV 분야 뿐만 아니라 다른 분야에서도 noise에 Robust한 모델을 구축한다는 측면에서 본 방법론을 이용해볼 수 있을 듯 하며, 나아가 Adversarial Attack은 현재의 인공지능 모델이 내부적으로 어떻게 작동하는지 간접적으로 이해할 수 있도록 도움을 줄 수 있을 것으로 보인다.
특히나, 요즘 관심 분야인 Self-supervised Representation Learning에서 모델이 스스로 방대한 unlabeled에 대해서 학습을 extensive하고 난 뒤에는 (모델 사이즈가 클 경우) 재학습이 다소 부담스럽다는 점과 어떠한 representation을 스스로 ‘어떻게’ 학습해내는지를 알아내는 것 또한 최근 트렌드(XAI)임을 감안한다면, self-supervised learning 분야를 연구할 때 Adversarial Attack과 같은 이상 input에 대해서도 robust하게 모델이 학습할 수 있도록 인지하는 것이 좋을 듯 하다.
군더더기 없이 깔끔한 발표를 준비해주신 윤상이형에게 한번 감사드리며, 부가적으로 통상 ‘attack’이라고 하면 black-box attack의 의미로 알고 있었는데, 이런 terminology에 대해서 미리 설명해주었다면 더할 나위 없이 좋았을 듯하다.
이번 세미나는 윤상이형이 Adversarial Attacks and Defenses in Deep Learning이라는 주제로 진행을 하였다. 먼저 알아 두어야할 기본적인 개념에 대한 설명부터 시작하였다. Adversarial example는 입력한 데이터와 아주 조금 다른 데이터를 의미한다. 달라진 데이터는 사람이 보았을 때 차이를 거의 인지 못할 수도 있으나 모델은 전혀 다른 데이터로 받아들일 수도 있다. 이렇게 adversarial example을 생성하여 모델에 적용해보는 것을 adversarial attack이라고 한다. Adversarial example을 만들 때 주는 노이즈를 Perturbation이라고 한다. 이 perturbation을 만드는 방법 중에는 Fast Gradient Sign Method(FGSM)이 있는데 이는 모델의 cost function이 커지는 방향으로 값을 업데이트하고 sine함수에 넣고 가중치를 주는 방법이다. 한편 이를 defense할 수 있는 방법은 위에서 생성된 데이터를 가지고 adversarial training을 하는 것이다. 해당 훈련에서는 실제 입력 데이터의 cost function과 perturbation cost function을 가중합하는 방법으로 진행이 된다. 여기서 각각의 cost function에 주는 가중치는 하이퍼파라미터로서 탐색이 필요하다. 세미나를 시작했을 때에는 딥러닝을 속이는 데이터가 왜 필요한지 의문이었다. 하지만 설명을 들으면서 노이즈가 존재하는 데이터셋도 잘 다룰 수 있는 강건한 모델을 만드는 기법 중 하나라는 것을 알게 되었고 많은 흥미를 느낄 수 있었다. 새로운 분야에 대한 소개를 열심히 준비해주신 윤상이형에게 감사의 말을 전한다.
금일 세미나는 윤상이가 'Adversarial attacks and defenses in deep learning' 이라는 주제로 진행해주었다. Adversarial attack은 일반적으로 좋은 성능을 보여주는 딥러닝 모델들에서도 보여지는 딥러닝 모델의 취약점이라 할 수 있다. 사람의 눈으로 보기에는 큰 차이가 없는 입력값임에도 모델은 완전히 잘못 인식하게 되는 상황들을 의미한다. 대개 이러한 취약점의 이유는 딥러닝 모델의 비선형성과, 불충분한 모델 정규화 때문에 발생한다고 한다.
이번 세미나에서는 이러한 Adversarial attack을 일으키는 Adversarial Example 데이터를 생성하는 방법을 Fast Gradient Sign Method를 중점으로 다루었고, 이렇게 생성한 데이터를 학습과정에 활용하여 Adversarial attack으로부터 방어하는 Adversarial Defense를 설명해주었다. 최근 개인적으로 연구를 진행하고 있었던 부분에서, 비슷하지만 classifier가 다르게 구분하는 데이터를 생성하는 방식을 공부하고 있었는데 오늘 윤상이가 세미나를 통해 소개해 준 내용들이 많은 도움이 되었다. 좋은 세미나를 준비해 준 윤상이에게 다시 한 번 감사한 마음을 표한다.
이번 세미나는 Adversarial Attacks and Defenses in Deep Learning의 주제로 윤상오빠가 진행하였다. 최근 딥러닝 모델의 발전으로 다양한 분야에서 뛰어난 성능을 보이고 있다. 하지만, Input 데이터의 작은 변화에도 성능에 큰 변화가 발생하는 취약점이 존재한다. 이러한 overfitting 문제를 막고 모델을 robust하게 만들어주기 위한 regularization의 방법으로 Adversarial training이 연구되고 있다. Adversarial training은 기존 Input data를 미세하게 조작하여 모델의 성능을 떨어트리는 Adversarial Attack과 조작된 데이터(Adversarial Example)를 고려하여 loss function에 반영하는 Adversarial Defense을 적대적으로 학습하는 방식이다. 이번 세미나에서 소개된 예시로는 모두 Computer vision 분야의 데이터였지만, 이미지가 아닌 Signal데이터 등 다양한 데이터에는 어떻게 Perturbation을 주는 것이 좋을지에 대한 고민을 하게 되었다. 흥미로운 주제를 이해하게 쉽게 설명해주신 윤상오빠께 감사의 말 전하고 싶다.
이번 발표는 모델의 예측에 악영향을 끼치는 데이터의 미세한 변화를 방어하는 방법에 대한 Adversarial Attack과 Defense에 대해 다루었다. 원본 이미지 데이터에 사람은 구별할 수 없을 정도의 미세한 변화를 준 데이터를 Adversarial Example이라 한다. 흥미로운 것은 이 Adversarial Example이 사람에게는 원본데이터와 구별되지 않음에도 이에 대해 모델이 원본 데이터와는 전혀 다른 예측을 하게되는 경우가 존재한다는 점이다. 이러한 문제는 모델이 사람과는 달리 이미지의 시맨틱한 특성을 제대로 잡아내지 못하였다는 의미이다. 이 문제를 해결하기 위해 본 연구에서는 시스테메틱하게 모델이 어려워하는 Adversarial Example을 만들어 내고 그것을 학습에 이용함으로써 데이터에 대한 모델의 오버피팅을 막고 시맨틱한 특성을 보다 잘 이해하게 하였다.
Adversarial Example을 만들어내는 방법 또한 흥미로웠다. 이미지의 각 픽셀에 대해 cost의 그래디언트를 계산하여 그래디언트가 감소하는 방향이 아닌 증가하는 방향으로 픽셀값에 노이즈를 추가하는 것이다. 이렇게 노이즈를 추가하여 만들어진 이미지는 육안상으로 아예 변화가 없을정도 임에도 효과적으로 모델의 오분류를 유도해 낼 수 있었다.
이렇게 Adversarial Example을 이용하는 방법은 비단 이미지데이터 뿐만 아니라 다양한 데이터에 적용될 여지가 존재할 듯 하다. 하지만 이미지 데이터와는 달리 일반적인 비즈니스 정형데이터나 다채널시퀀스데이터에 경우 노이즈를 추가함으로써 시맨틱한 특성이 사라지지 않는지 사람의 눈으로 확인하는 것이 거의 불가능하다. 시맨틱한 특성이 사라진 데이터를 학습에 이용하는 것은 오히려 모델에 악영향을 끼칠 것이기 때문에 노이즈를 추가한 이후에도 그러한 특성을 유지하고 있는지 판단 할 방법이 별도로 필요해 보인다.