과학

딥러닝 시리즈 ) 왜 패턴인식, 표현학습이라고 할까?

우선 글을 쓰기에 앞서 내가 했던 댓글논쟁을 좀 짚고자 해. 내가 틀렸던 부분도 있는거같아서. 읽기 싫으면 밑에 점선까지 넘겨도 됨

 

 

화면 캡처 2022-07-22 231252.png

맨 처음 댓글에서 말한 내용은 맞는 얘기임. 어떤 목적이 주어졌을때 (이전 글에는 Q와 P~를 근사시키는게 목적이라고 했어) 이 likelihood (parameter space는 continuous 하므로) 를 최대화하는 파라미터를 찾는게 맞음. 근데 얘가 네이버 블로그 드립을 쳐서 내가 그 내용을 못읽은것도 있고, 이 글에서 주장하는 바는 실제 세계를 다루는 확률분포와 모델의 확률분포를 근사시키는 과정이 중요하다고 한거니까 여기에 꽂혀서 저 댓글을 제대로 못읽었음. 그래서 내가 쓴 답글은 전혀 대답이 되질 못하는듯. 내가 엉뚱한 소리를 했음.

 

저 댓글이 맞는 말이지만, 내가 애초에 강조한 것은 그래서 학습 목적으로 주어지는 ERM을 최소화하는 것이 '학습을 하는 이유' 냐 이거임. 정말로 ERM을 최소화 (training error를 최소화) 하기만 하면 모든게 다 통하냐 이거지. 그렇게 해서는 overfitting만 아주 잘 되는 모델밖에 학습할 수 없음. 이걸 깨기 위해서 실세계와 모델의 확률분포 얘기를 한거고, 현대 딥러닝은 fitting을 아주 잘 하기 때문에 그 '깨는 관점'이 아주 중요하다고 생각해서 이런 접근방법을 쓴거임.

 

아무튼 내가 개소리로 답해서 미안했고 원래 말하려던 의도는 위에 쓴바와 같음.

 

-------------------------------------------------------------------------------

 

이번에 서울대 AI 대학원 랩실에서 표절사건이 일어났어. 그 얘기를 여기서 하려는건 아니고, 그 학술대회의 이름은 CVPR인데

이걸 풀어쓰면 "Computer vision and Pattern Recognition" 이야.

흠 좋아. 앞에 컴퓨터 비전이란건 이미지나 영상을 잘 처리하는 방법을 연구하는 분야라는건 잘 알고 있어. 근데 왜 패턴인식 (Pattern Recognition) 이지?

이뿐만이 아냐. AI분야의 탑 학술대회를 몇개 더 꼽으라면 CVPR과 더불어 ICML, Neurips, ICLR이 있어.

여기서 ICLR을 풀어쓰면? "International Conference on Learning Representations" 이야. 바로 '표현학습'에 해당하는거지.

 

패턴인식이나 표현학습의 의미를 좀 곰곰히 생각해보자면, 두가지로 정리할 수 있을거같아.

1. 어떤 복잡한 데이터들의 패턴을 파악해서 간단히 정리한다

2. 데이터를 잘 표현하는 방법을 배운다

 

우리가 그간 딥러닝에 대해서 떠올려보면 알파고, 그림그려주는 프로그램, 딥페이크 등 여러가지 작업을 할 수 있는걸로 생각했잖아?

혹시라도 내가 올렸던 을 본 사람이라면 거기에 더불어서 어떤 데이터가 존재할 확률을 계산할 수 있는 프로그램이라고 생각할수도 있겠지. (확률을 계산할 수 있다면, 역으로 데이터를 생성할수도 있어. 자세한건 내가 쓴 글 참고)

근데 이 데이터의 패턴을 파악한다, 잘 표현한다는 개념은 이것과는 약간 동떨어진것 같아. 그럼에도 주요 딥러닝 학회들은 저 단어들을 학회 이름에 붙일만큼 어마어마하게 중요하게 생각해왔고, 지금도 중요하게 생각하고 있어. 왜 그게 핵심인걸까?

 

예를 들어 사진을 받아 고양이와 개를 구분하는 프로그램을 짠다고 생각해보자.

 

Deep learning with fastai — Dogs and cats classification | by Thomas  Laurent | Medium

https://medium.com/@thomaslaurent/deep-learning-with-fastai-dogs-and-cats-classification-81b064ebd580

 

우리가 생각할 수 있는 기준은 뭐가 있을까? 뭐 고양이 귀, 얼굴 생김새, 꼬리 모양, 몸의 모양, 발바닥 모양 등이 있겠지. 그럼 프로그램의 작동순서를 이렇게 표현할 수 있지 않을까?

 

사진을 입력받는다 -> 사진의 특징을 입력한다 -> 사진을 분류한다

예를 들어 제일 왼쪽 위 사진의 경우 누가봐도 강아지 귀, 강아지 눈, 강아지 털을 갖고 있지. 그러면 특징을 다음과 같이 채워넣을 수 있겠어.

화면 캡처 2022-07-19 015310.png

 

사진 1 : [고양이 귀 : 0, 강아지 귀 : 1, 고양이 눈 : 0, 강아지 눈 : 1, 강아지 털 : 1, 고양이 털 : 0]

 

선형대수 기억나는 사람 있어? 뭐 이렇게 하면 6*1차원의 행렬로 표현할 수도 있는데, 일단은 행렬이란 말 안 쓰더라도 대충 어떤 느낌인지 알겠지? 우리는 아~~주 복잡한 사진을 어떤 아주 간단한 6개의 숫자로 나타내버렸고, 프로그램은 이 간단한 6개의 숫자를 통해서 사진이 강아지인지 고양이인지 판단한거야!

 

이렇게 사진을 표현하는 일은 사진속에서 어떤 패턴을 찾고, 그 패턴정보를 표현한다는 두가지 단계로 나눌 수 있어. 왜냐하면 고양이 귀, 강아지 귀라는 정보는 어떤 패턴에 따라 분류하는 거잖아? 즉 아주 일반적으로 보자면, 우리나 딥러닝 프로그램이나 입력받은 사진을 6가지의 정보(고양이귀, 강아지귀, 고양이눈, 강아지눈, 강아지털, 고양이털) 로 표현하고, 또 그걸 다시 2가지의 정보(강아지와 고양이) 로 표현한거야. 이걸 좀만 더 복잡하게 하면 딥러닝이 돼. 딥러닝 모델은 이 표현하는걸 수십단계에 걸쳐서, 수백가지의 정보로 표현하거든. (물론 강아지와 고양이로 분류하는 것이 목표라면 결국엔 2가지의 정보로 표현하게 되지)

 

그렇게 본다면 이 '표현한다'라는 것은 딥러닝에게 있어서 아주 중요한 일이라는걸 알 수 있을거야. 사진의 데이터는 어마어마하게 복잡해. 픽셀이란 말을 모두 들어봤을텐데, 사진은 적어도 300 * 300개의 픽셀, 3가지 RGB 색깔정보를 갖고 있으니 27만개의 숫자로 표현되는 셈이야. 근데 이걸 무려 6개의 숫자로 표현했으니, 99.9999%의 압축률을 자랑한다고. 이거 정말 대단하지 않아? 우리는 이 데이터를 표현하는 방법을 잘만 만들 수 있으면, 아주 복잡한 데이터라도 간단하게 표현하면서 아주 우수한 성능으로 사진을 분류할 수 있는거야.

 

하지만 이 표현 방법이란건 프로그래밍하기 아주 어려워. 학습하기도 어렵고. 예를 더 들어볼까. 

 

The unusual effectiveness of adversarial attacks | by Kirthi Shankar  Sivamani | The Startup | Medium

https://medium.com/@smkirthishankar/the-unusual-effectiveness-of-adversarial-attacks-e1314d0fa4d3

 

'Adversarial attack' 이라고 들어봤어? 사진에 아주 미세한 잡음을 주면 딥러닝 프로그램이 아예 망가져버리는거야. 위 그림은 누가 보기에도 둘다 돼지 그림이지? 다만 왼쪽 그림은 오리지널 돼지 그림이고, 오른쪽 그림은 돼지 그림에 사람 눈에 띄지 않는 아주 미세한 잡음을 섞은거야. 그랬더니 딥러닝 프로그램이 저 사진을 보고 여객기라고 분류해버렸어!

 

왜 이런 현상이 일어날까? 뭐 아주 직관적으로 보자면, 앞에서 말했듯 이미지도 결국 숫자들의 모임이기 때문에, 실제로 딥러닝 프로그램이 보는 값으로 치자면 왼쪽과 오른쪽이 다르지. 그래서 왼쪽과 오른쪽을 다르게 분류했다고 볼 수 있을거야.

 

근데 이 설명은 뭔가 납득이 안 되지 않아? 우리가 보기엔 왼쪽과 오른쪽 사진은 아주아주 비슷하잖아? 그럼 사진을 잘 표현하기만 했다면 둘을 아주 비슷한 특징으로 표현해야 하는거 아냐? 그럼 자연스레 분류한 결과도 똑같아야 할거고.

 

하지만 이 '비슷한 특징으로 표현해야 한다'는 법칙을 알기가 어려워. 그림을 하나 그려볼게.

 

3.png

왼쪽은 1차원상에 존재하는 데이터, 오른쪽은 2차원상에 존재하는 데이터야. 둘의 차이점이 뭘까? 일단 데이터가 존재할 수 있는 공간 자체가 아주 넓어졌지? (물론 수학적으로는 둘다 연속적인 공간에 존재하므로 비교가 불가능합니다.) 1차원에서는 쉽게 데이터들의 관계를 볼 수 있었지만, 2차원에서는 뭔가 그렇게 딱 떨어지는 모양은 아니야.

 

딥러닝 모델의 얘기를 들어볼까? 아까도 말했듯 사진은 27만차원의 공간에 존재하는 미약한 점이야. 마치 무한한 우주에 존재하는 모래 알갱이와 같지. 근데 이 점이 다른 점과 유사하다는 것을 딥러닝 프로그램이 잘 표현해낼 수 있을까? 쉽지 않아. 두 점간의 거리 (픽셀의 차이) 를 사용하면 되지 않냐고? 그럼 다음 문제를 풀 수 없게 돼.

 

AI 인공지능 기술, 머핀과 치와와를 구별하는 방법은.. : 네이버 블로그

 

아마 짤로 많이들 봤을거야. 치와와와 머핀을 구분하는 문제. 사람도 얼핏보면 헷갈리지만, 그래도 거의 100%의 정확도로 구분해내지? 픽셀 차원이라면 어떨까. 둘은 아주 비슷할거야. 색깔도 비슷하고 눈 색깔도 비슷하고. 사진들간의 유사도만을 사용하겠다면 이런 문제를 절대 풀 수 없어.

 

표현학습이 어려운 이유 또 하나가 있어. 그림을 하나 더 그려볼게.

 

2.png

 

왼쪽의 경우 빨간색 점을 강아지 그림 데이터들, 파란색 점을 고양이 그림 데이터들이라고 생각해봐. 둘은 아주 잘 표현됐고, 그 결과 2차원상의 점으로 표현됐어. 둘이 아주 잘 분리되었으니 저걸 구분하는 선도 아주 깔끔하게 나왔지?

 

그런데 어느날 갑자기 오른쪽 그림처럼 저렇게 3개의 강아지 그림이 생기게 됐어. 그러면 우리는 기존의 딥러닝 모델을 수정해야해! 뭐 저걸 잘 표현해내지 못한 탓도 있을거고, 저걸 구분하는 선이 잘못되었을수도 있어. 어쨌거나 문제는 우리가 평소 생각하던 데이터와 다른 유형의 데이터거나, 잘 발생하지 않는 희귀한 데이터일 경우 적절하게 표현하기 어렵다는거지. 왜냐하면 우리는 주로 발생하는 데이터를 표현하는 방법을 학습하니까.

 

이처럼 어떤 데이터를 표현하는 방법을 학습한다는 것은 아주 어려운 일이야. 그러면서도 딥러닝 기술의 핵심이기도 해. 그래서 ai계의 최고수준의 학회에서도 그 이름을 그대로 쓰는거야. 패턴인식 그리고 표현학습. 패턴이란 곧 어떤 기준에 의한 반복이고, 표현이란 이것들을 압축한것에 해당해. 그리고 딥러닝은 이걸 기반으로 데이터로부터 어떤 유익한 정보를 잘 끌어내서 활용하는거야. 바꿔서 말하자면, 사람이 보기에 입력된 데이터가 달라지더라도 불변하는 것(invariance)를 프로그램도 잘 파악하게끔 하고, 이걸 잘 표현해내는 것이지.

 

얘기가 너무 추상적이기도 하고 저번보단 그다지 유익하지 않았던것 같지만 꼭 해보고 싶었던 얘기였어.

질문이나 지적사항 있으면 언제든지 받을게!

12개의 댓글

2022.07.21

요즘은 Representation을 표현이라고 번역하나? 나때만 해도 대응물 아니면 표상이었는데 말이지. 특히 뇌과학쪽에서 많이 그렇게 썼고 그쪽 단어들이 대거 인공지능 쪽으로도 옮아온 이상, 그리고 패턴분석과 신호처리가 주된 연구대상으로 겹치는 만큼 다른 완전히 다른 뜻으로 쓰이진 않았을건데

0
2022.07.21
@고라파덕덕고

좀 뒤져보니 실제로 2010년대 후반부터 “표현”이라 쓰이는 곳이 종종 보이네..

0
2022.07.21
@고라파덕덕고

한국어 번역이야 항상 개떡같으니 뭐 ㅋㅋㅋ

0
2022.07.21

학부생?

0
2022.07.21
@파이토치2

대학원생

0

representation space, embedding space, latent space 이 셋은 수학적으로 다르지만 실무에서는 거의 동치라고 퉁칠때도 있고 하여튼 중구난방인데다가 개념도 선대 안배웠으면 이해하기도 난해해서 비전공자에게 설명하기 진짜 뒤지게 힘듬

0
2022.07.21
@대머리머대리머머리대대리

논문에서도 막쓰는데 실무에서야 뭐 ㅋㅋㅋㅋㅋ 여기에선 그냥 뭉뚱그리긴 한듯

0
2022.07.22

허깅페이스 만세!

0
2022.07.22

re-presentation을 표현 보다는 재현이라고 생각하는게 더 좋아보임.

재현을 위한 학습.

 

그럼 뭘 재현하려고 하느냐?

사람이 그 사진의 어노테이션, 혹은 라벨링을 재현하는거지.

recall 메트릭을 떠올릴수 있는데 같은 말이니까.

 

모든 학습모델은 가르친 방향으로 학습하고 그것을 재현을 해야 성공적인 모델이고

상품, 실험, 이론 모두 마찬가지.

 

재현으로서 받아들이게 되면 패턴 인식도 좀 더 쉽게 다가옴.

 

우리가 이미지를 구분 하는 방식은

특성 ( 형태를 이루는 엣지, 형태를 채우는 패턴 )을 보고 구분함

 

그리고 위의 패턴 혹은 특징 보이는 대상들을 무리로 묶어서 인간들은 이름을 붙이고 이름을 불러

 

그럼 우린 위의 내용을 아래처럼 다시 쓸 수 있고

특성을 가진 무리의 패턴을 인식하고 이름을 붙이는 것을 재현하는 학습

 

우린 이 학습을 컴퓨터 즉 디지털 데이터로서 학습을 시킴.

 

컴퓨터 비전의 디지털 데이터는 대상의 빛의 파장이 카메라를 통해

ADC를 거친 RGB 3채널 24 bitrate 트루 컬러 이미지고

 

컴퓨터 비전의 데이터 환경에서 ,

특성을 가진 무리의 패턴을 인식하고 이름을 붙이는 것을 재현하는 학습

 

빛의 파장 -> 카메라 -> 컴퓨터 비전 패턴인식 -> 호칭 재현

 

이것을 명확하게 알았다면 위의 노이즈 신호를 합성해서 입력값을 넣는게

애초에 학습모델에서 정의하지 않은 행위를 한 것 이므로

문제 출제를 위반 했다는 것을 알아야 함

 

수능에서 뜬금없이 퓨리에 트랜스폼을 지식을 요구 하는 것과 다를게 없고

실험에서 통제변인으로 지정한 변수를 가변시키는 몰상식한 행위와 다를게 없고

휘발유 자동차에 경유 섞어서 돌리고는 왜 고장나지? 이러는 것과 다를게 없음

 

그럼 저 글을 쓴 사람들이 저게 무식한 행위라는 것을 몰랐을까?

ㄴㄴ 아님

 

백날 설명해도 지금도 모르는 제대로 이해 못하는 사람들이 지천에 널렸으니

이 멍청한 새끼들아 좀 알아 처먹어라 하고 논문으로 호소 하는거임

 

1
2022.07.22

그리고 치와와 머핀 문제를 틀리는 이유는

학습시 사용되는 커널 필터의 문제임

 

둘의 차이는 수염이나 눈, 코, 입 위치 같은

일반화와 거리가 먼 국소적인 차이를 봐야하는데

즉 학습을 잘못시킨거지.

 

예를 들어서 사과를 돌려 깎아야 하는데 과도가 아니라

전기톱을 가져와서 하려고 하니 그게 제대로 될리가 있나?

 

저걸 구분하려면 조금 더 예민한 커널 필터를 이용해 학습하거나

오브젝트 디텍션모델을 만들고 눈코입 위치같은 조합을 통해서 2차 카테고리를 생산해야하는거지.

 

애초에 소수점 단위로 해야 구분할 수 있는 문제를 정수로만 푸시오 하는 격이고

기저 벡터 3개 이상을 요구하는 3차원 문제를 1개의 기저벡터로만 풀라고하니 안풀리는거지

 

그래놓고 인간은 100% 정확히 구분 -> 채점자는 3차원으로 풀이함

 

그럼 이것도 저 글 쓴 사람들이 몰랐을까?

ㄴㄴ

 

모르는 사람들에게 호소하는거지

1
2022.07.22
@나는 미남이다

좋은 얘기임 주어진 데이터를 잘 표현하는 방법을 배운다는 건 머신러닝의 정석같은 얘기인데, 문제는 우리가 진짜 원하는게 뭐냐 하는거임. 우리는 우리 손에 있는 강아지와 고양이 그림을 구분하는게 목적이 아니라, 세상속에 있는 강아지와 고양이를 구분하는게 목적인거임.

그런 의미에서 노이즈를 입힌 이미지는 너가 말한대로 주어진 데이터 패턴을 아주 크게 벗어나는 것이므로 기존의 모델이 맞추기에 터무니없는 문제이지만, 그럼에도 본래 목적이었던 강아지 고양이 구분 목표에는 미달했기에 해당 목표를 위해서는 다른 접근이 필요하단거지. 주어진 데이터가 아닌 실제 강아지와 고양이를 구분하는 패턴을 파악하는게 중요한거임

0
2022.07.26

참조한 페이퍼 있으면 레퍼 좀 달아줄 수 있음?

 

그리고 이 말은 무슨 뜻임? “물론 수학적으로는 둘다 연속적인 공간에 존재하므로 비교가 불가능합니다” 1차원이 2차원의 subspace로서 비교가 가능한 경우가 있을 건데

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜
563 [과학] 경계선 지능이 700만 있다는 기사들에 대해 34 LinkedList 11 13 일 전
562 [과학] 번역)새들은 왜 알을 많이 낳는가? - 후투티의 형제살해 습성... 7 리보솜 3 2024.03.23
561 [과학] 학계와 AI, 그리고 Bitter Lesson (쓰라린 교훈) 26 elomn 35 2024.02.17
560 [과학] 지구의 속삭임, 골든 레코드의 우주 9 Archaea 10 2024.02.16
559 [과학] 잔혹한 과학실험 이야기 <1> 절망의 구덩이 19 개드립하면안됨 37 2024.02.15
558 [과학] 스트레스를 받으면 술이 땡기는 이유 12 동식 16 2024.02.10
557 [과학] 지능은 모계유전이 아니다. 40 울릉특별자치도 35 2024.01.26
556 [과학] 진화를 생각할 때 고려할 것들 23 날씨가나쁘잖아 12 2024.01.17
555 [과학] 학문적(과학적) 접근과 유사 진화심리"학" 26 날씨가나쁘잖아 19 2024.01.15
554 [과학] 호모 사피엔스의 야릇한 은폐된 배란에 대한 남녀 학자의 다... 14 개드립하면안됨 15 2023.12.29
553 [과학] 김영하의 작별인사를 읽고 느낀 점 (스포있음) 21 장문주의 2 2023.11.28
552 [과학] 제4회 포스텍 SF 어워드 공모전 ( SF 단편소설 / SF 미니픽션 ) 2 따스땅 1 2023.11.25
551 [과학] 펌) CRISPR 유전자 가위 치료제 "최초" 승인 12 리보솜 7 2023.11.25
550 [과학] 러시아는 기술산업을 어떻게 파괴시켰는가(펌) 9 세기노비는역사비... 15 2023.11.18
549 [과학] 고양이에 의한 섬생태계 교란과 생물 종의 절멸 (펌) 2 힘들힘들고 6 2023.11.16
548 [과학] 번역) 알츠하이머병 유전자는 어떻게 살아남았는가? 12 리보솜 10 2023.11.15
547 [과학] 『우영우』의 자폐 스펙트럼 장애 개념이 왜곡인 이유 (펌) 47 힘들힘들고 10 2023.11.12
546 [과학] 흑수저 문과충 출신 구글 취직하는 파이썬 특강 -1 14 지방흡입기 11 2023.09.27
545 [과학] 국가별 당뇨 유병율 이거 뭐가 바뀐건지 아는사람? 8 LAMBDA 1 2023.09.27
544 [과학] 물샤워 ㅇㅈㄹ 하는 놈들 봐라 171 철동이 48 2023.09.23