태그
요약인공지능
최종 편집
Dec 30, 2022 2:32 AM
발행일
October 9, 2021
최근에 인공지능에 관심을 좀 더 가지게 됐는데, 마침 며칠 전 페이스북에서 보이저엑스의 대표인 남세동님이 딥러닝의 기초 개념을 유튜브 라이브로 설명해준다는 글을 봤다. (강의를 보고 단 한명이라도 채용이 된다면 성공이라고...) 그게 10월 8일 오늘이었고, 까먹고 있었는데 다행히 알림설정이 알려줬다.
항상 대충만 알고 있던 비지도학습의 개념이 머리에 잘 들어오게 되어 재미있게 봤다. 딥러닝 학습 테크트리도 소개해주셨는데, 테크트리대로 따라갈지는 모르겠지만 좀 더 공부를 해보고 싶어졌다. 더 기억을 잘할 겸 나름대로 강의 내용을 요약해본다. (라이브 스트리밍 링크)
프로그래밍
- 컴퓨터는 숫자를 가지고 계산을 하는 기계에 불과함.
- 문자, 그림, 소리 등 수많은 것들을 0과 1로 표현할 수 있음.
- 개발자 = 숫자를 받아서 숫자를 반환하는 코드를 만드는 사람. 사람이 생각해서 사람이 만드는 게 프로그래밍.
- 프로그래밍으로 가상현실도 만들 수 있지만, 고양이와 개를 판별하는 프로그램은 만들 수 없었음. 그러나 인공지능은 판별할 수 있음.
- 프로그래밍은 고양이를 왜 못 알아보는가?
- 프로그래밍을 하려면 알고리즘이 있어야 함
- 이걸 사람이 만들려면 "고양이는 어떤 것이다"라는 걸 아주 명확히 정의/설명할 수 있어야 함
- "고양이는 다리가 4개다" -> 사진에 다리가 없다, 다리가 4개인 것은 고양이뿐만이 아니다, 그러면 다리는 뭐냐? 등의 이유로, 알고리즘을 명확히 정의내리지 못함
- 이세돌도 알파고를 이긴 순간에 왜 그 때 거기에 바둑돌을 놨냐는 질문에 정확히 답변하지 못했음
딥러닝
- 딥러닝은 사람의 프로그램 대신, 인공신경망(딥 뉴럴 네트워크)을 이용해서 학습(러닝)을 해서 "숫자를 받아서 숫자를 반환"하는 것.
- 사람이 만든 프로그램보다 훨씬 간단하지만 훨씬 노드 갯수가 많음.
- 신경망의 노드 하나는
- 인풋 숫자를 n개 받는데(X0~Xn),
- 숫자당 하나씩 weight(W0~Wn)를 주고,
- xn * wn을 전체 더해서,
- 그 합에 단순한 함수를 적용해서
- 그 결과값을 반환한다. (고양이다 아니다, 고양이다 개다, ...)
- 이런 노드가 수도 없이 있는 것.
- 딥러닝은 여기서 w를 찾는 과정이다. 지도학습과 비지도학습.
- 일단 w를 찾고 나면 결과는 deterministic하다. 같은 인풋에 같은 결과가 나옴.
지도학습
- 데이터의 정답을 사람이 라벨링해주는 것.
- 처음에는 전체 엣지의 w를 랜덤하게 넣음.
- 예를 들어 지도학습의 라벨링된 결과가 10인데, 인풋과 랜덤 w로 반환된 결과가 3.7이다.
- 이 6.3이라는 차이를 줄이기 위해 다시 랜덤으로 w 를 바꾼다.
- 기존 w 를 살짝 늘리거나, 살짝 줄이거나.
- 이걸 결과가 10에 충분히 가깝게 나올 때까지 수도 없이 반복한다.
비지도학습
- 지도를 받지 않아도 데이터간의 유사도(패턴)는 알아낼 수 있음.
- 아이가 선생님 없이 동물원에 가도 이 동물과 저 동물이 비슷하게 생겼다, 를 알 수 있듯이.
- 인터넷에 아주 많은 문장이 있는데, 거기서 일부를 랜덤하게 지운다. 그러면 빈 칸에 들어갈 수 있는 단어들이 공통점이 있다.
- 그 ()는 울면서 밥을 먹었다. → 여기에는 사람, 남자, 여자는 들어갈 수 있지만 책상, 의자, 컴퓨터는 들어가면 이상하다.
- 이렇게 "들어갈 수 있는 단어"들은 그 주변 단어들과 일정한 관계를 가진다. 이게 그 단어의 '특성'이다.
- 그 특성을 컴퓨터가 각 단어의 n차원의 공간상 위치로 표현. 연관 있는 단어들끼리 근처에 둔다.
- 그렇게 비지도학습의 결과로 단어를 배치했더니, 놀랍게도
- man → woman 사이의 벡터와 king → queen 사이의 벡터가 같았다.
- 그리고 walking → walked, swimming → swam 사이의 벡터가 같았다.
- 남성성-여성성, 현재진행형-과거형 같은 의미를 컴퓨터가 알아낸 것이다.
- 한국어 위키백과와 나무위키에서 학습한 결과를 https://word2vec.kr/search/ 에서 실험해볼 수 있다.
- 그림도 비슷하게 학습할 수 있다. 그림에서 일부를 지우고 학습한 결과를 그리게 해보면 세상에 없던 그림들이 나온다.
패턴
- 교과서에 나오는 것, 과학, 이런 건 다 패턴이라고 생각. 음악도 사람이 기분좋게 만드는 음표의 패턴.
- 딥러닝 = 신경망으로 숫자에서 패턴 찾기
- 따라서, 딥러닝이 못하는 것?
- 숫자, 즉 컴퓨터로 자료화할 수 없는 것은 못한다. 그런데 생각보다 정말 많은 것들이 숫자로 표현된다.
- 패턴이 없으면 못한다. 그런데 패턴이 없으면 딥러닝만 못하는 게 아니라 대부분 못할 것.
- 인공신경망으로 못하면 딥러닝으로 못한다. 그런데 지금까지는 대부분 도전하는 것들이 성공하더라.
예시
- 2014년에 사람 얼굴을 처음으로 그렸는데, 이제는 사람을 너무 정확하게 그려서 홍채를 확대해서 봐야만 구분할 수 있는 정도이다.
- 작은 해상도를 큰 해상도로 채워넣는 것도 할 수 있다.
- (테슬라) 8개 카메라로 주변을 촬영해서 3차원 영상을 만들 수 있다.
- 키보드 소리를 제거할 수 있다.
- 교향곡을 작곡할 수 있다.
- 기상 예측을 할 수 있다. 1초 전 기상 이미지를 받아서 1초 뒤 이미지를 만들어내기.
- 가장 좋은 슈퍼컴퓨터보다 더 빠르게, 더 잘 함.
- 생물학에서도 쓰이고, 챗봇도 쓰이고, 디자인도 하고...
- 딥러닝 = 연금술?
- 과학은 아니지만 과학(화학)의 전 단계고, 사람들에게 도움을 줄 수 있다는 측면에서 어느정도 맞다고 생각.
- 딥러닝 = 블랙박스?
- 반은 동의. 만든 결과 자체는 눈에 다 보임. 그걸 어떤 원리를 만들었는지는 모름.
- 나는 마법의 돌이 될 거라고 보고, 지금도 적어도 다이아몬드는 된다고 본다.
Q&A
- 딥러닝에서 좋은 모델보다는 좋은 데이터가 대개 더 중요.
- 요즘 아주 좋은 모델이 있는데 그거 하나로 웬만한 거는(바둑, 얼굴인식, 음성인식, ..) 다 잘 할 수 있음.
- 요즘은 신경망의 구조 자체도 딥러닝으로 만듦. 딥러닝하기에 좋은 하드웨어도 딥러닝으로 디자인함.
- 아직까지는 산업에 쓸만한 제품들은 거의 다 지도학습의 결과임. 그러나 점점 비지도학습도 쓸만한 게 많이 나올 것.
- 딥러닝 학습 테크트리는 페북에 써놨음.
- 전형적인(평균적인) 답을 내지 않기 위해 노력을 많이 함.
- 향후 최소 10년에 걸쳐 인공지능의 중요성은 갈수록 커지고, 세상의 거의 모든 것이 인공지능과 함께하게 될 것. 고등학교 때 필수과목 배우듯 인공지능을 배워야 할 것이라고 생각.
- 알고리즘 프로그래밍을 하는 것도 현재 90%라고 한다면 50% 미만으로 줄어들 수 있다고 봄.
- 그러한 프로그래머의 절대치는 늘어날 거라고 보지만, 딥러닝으로 프로그램 만드는 사람의 비중이 더 높아질 것이다.
- 머신러닝을 배우고 딥러닝 하는 게 좋은가? → 근육 키우고 달리기 잘하면 축구를 더 잘 할 수는 있겠지만, 그냥 축구만 잘하려고 해도 충분하다고 생각. 축구가 더 재밌으니까.