머신러닝 관련 강의가 요즘 많이 나오고는 있다지만 솔직히 문과생인 내겐 강의 내용이 너무 어렵게 느껴진다.
또 아주아주 열심히 듣다보면 하나하나의 내용은 이해가 가는데 그걸 하나로 묶어주는 무언가가 내겐 없다.
머신러닝과 딥러닝 관련 강의 중 한국어로 되어 있고, 그 중에서 가장 쉽게 설명하신다는 홍콩과기대 김성훈 교수님의 강의를 받아쓰기하며 공부를 계속 이어가려 한다.
[강의 영상]
[받아쓰기 내용]
반갑습니다. 저는 홍콩과기대에서 컴퓨터공학 쪽으로 연구를 하고 있는 김성훈이라고 합니다. 제가 하고 있는 연구 중에 머신러닝을 사용하고 딥러닝을 사용하는 부분이 있어서 저도 좀 이 부분에서 많이 공부를 했고요, 또 아주 재밌는 분야라 여러분들과 이런 이야기를 함께 해보기 위해서 이 비디오를 만들었습니다.
최근에 여러분들 모두가 관심있게 지켜보셨을 만한 대국인데요. 세기의 대결이라고도 불렸던 우리나라의 자랑스러운 이세돌 선수와 그리고 구글 딥마인드에서 만든 인공지능인 알파고와의 바둑 대결이 있었습니다. 그동안 바둑은 여러분들이 다 아시는 것처럼 경우의 수가 너무나 많기 때문에 컴퓨터가 도저히 계산해낼 수 없는 어떤 그런 영역이라 오직 사람만이 많은 공부를 하고, 또 우리 이세돌 선수 같은 명석한 두뇌와 훌륭한 예지력에 가까운 직관력이 있을 때만 바둑을 잘 둔다라고 우리가 모두 믿고 있었던 영역입니다.
그런데 이번에 아쉽게도 2016년 3월, 아마 컴퓨터 역사 뿐만 아니라 인류 역사에 길이 기록될 만한 날인데요. 우리 아쉽게도 이세돌 선수가 알파고에 4대 1로 지는 이런 결과를 가져왔고요, 또 이 결과를 바탕으로 많은 사람들이 그럼 정말 인공지능이란 것은 무엇인가, 정말 우리가 인간만이 할 수 있었다고 생각한 그런 직관적인 의사결정을 인공지능이 정말 할 수 있을 것인가, 얼마나 우리보다 잘 할 수 있을 것인가에 대한 많은 고민들을 하게 해줬던 하나의 대결이라고 할 수 있겠습니다. 사실 많은 질문들을 우리에게 던졌는데요. 그 답 중에 하나가 저는 머신러닝의 대가이신 Andrew Ng 교수님의 슬라이드, 2015년도에 발표한 슬라이드인데요, 여기에 그 답들 중에 하나가 있지 않나 하는 생각이 듭니다. 이분의 주장은 이런 시대를 살면서 머신러닝을 잘 이해하고 잘 활용하는 것이 바로 슈퍼파워를 가지는 길이라는 것입니다. 그래서 복잡한 많은 데이터가 있는데 이 중에 의사결정을 내려야 할 때 이 머신러닝을 이용해서 잘 그리고 정확하게 빠르게 내린다면 이런 사람들이 슈퍼파워를 갖는 것이고 또 그렇지 못한 사람들에 비해서 앞서 나갈 수 있다는 것입니다. 저도 이 슬라이드를 보고 굉장히 놀라면서 굉장히 공감을 하였습니다. 그래서 이 비디오를 만든 이유가 좀 더 많은 분들이 이 머신러닝을 잘 이해하고 또 잘 활용해서 이런 슈퍼파워를 우리가 모두 한번 가져보자 하는 것이 이 비디오의 정말 목적이 되겠습니다.
그러면 이 비디오를 누가 이해할 수 있을까요? 이 비디오는 누가 봐야 할까요? 여러분들이 제 이야기를 듣고, 또 이세돌 선수의 바둑 경기를 보고 머신러닝이 조금 궁금하다. 이 머신러닝이 뭘까? 이런 정도의 궁금증을 가진다면 누구나 들을 수가 있고 또 누구나 이해할 수 있는 부분이라고 생각됩니다. 특히나 여러분들 중에 나는 수학적인 지식이 별로 없고 또 수학을 잘 못한다. 난 수포자였어, 옛날부터. 이런 사람들이라고 할지라도 또는 본인이 나는 컴퓨터도 전공할 수도 있지 않기 때문에 이런 머신러닝이라는 것은 굉장히 나와는 거리가 있다. 이렇게 생각하시는 분들도 충분히 이해할 만한 수준으로 비디오를 만들었습니다.
수학이 물론 전혀 사용되지 않는 것은 아닙니다. 수학이 조금 사용되는데요. 예를 들어 이런 겁니다.
\( y = Wx + b\) 이 정도. 이 정도의 수학을 여러분들이 이해하실 수가 있으면 충분히 따라오실 수가 있고 이 머신러닝을 이해하실 수가 있습니다. 여러분들이 이제 중학교 때나 학교에서 배울 때 이런 형태로 많이 배웠죠.
\( y = 2x + 3 \)
이렇게 1차 방정식을 주면 이걸 보고 \(x\)가 얼마일때 \(y\)가 얼마이고, 이런 것들 정도만 이해하시면 충분히 따라올 수가 있습니다. 그리고 현재로도 사실 이런 전혀 이해도 없이도 사실은 머신러닝이라는 알고리즘 들이 많이 잘 구현이 되어 있는 툴들이 많이 있기 때문에 이것은 그냥 마치 블랙박스처럼 이렇게 블랙박스처럼 아무것도 안에 뭐가 있는지 잘 모르는 상태에서도 어떤 값 입력들을 주고 나오는 출력 값을 가지고 여러분들이 원하는 어떤 일을 할 수가 있습니다.
그러나 여러분들이 만약에 머신러닝을 조금만 더 이해한다면 이 머신러닝의 이 블랙박스를 점점 더 효율적으로 좀 더 효율적으로 사용할 수가 있기 때문에 굉장히 좋은 출력 값을 만들어낼 수가 있는 것이죠. 그리고 또 내가 이렇게 이론적인 것들은 좀 알긴 하는데 이걸 실제로 한번 내가 구현해 보고 싶다. 또 Tensorflow라는 좋은 툴이 있는데 이걸 가지고 좀 구현해 보고 싶다 하시는 분들도 이런 비디오를 보시면서 충분히 이해하실 수가 있다고 생각됩니다.
그래서 제가 이 비디오를 만드는 목표, 또 여러분들이 이 비디오를 보시면서 대략 어느 정도의 기대를 하면 좋을까 하는 것을 제가 생각해 보았는데요. 기본적으로 제가 다루고 싶은 것은 머신러닝에 대한 기본적인 이해입니다. 여러분들이 머신러닝을 기본적으로 이해하고 머신러닝이 굉장히 넓은 지역, 넓은 분야이긴 하지만 이것을 다 다루진 않고 이 부분이 여러분들이 많이 그냥 들어보셨던 딥러닝인데요. 지금은 뭔지 모르셔도 상관이 없습니다. 딥러닝인데 이것을 이해하기 위한 기본적인 알고리즘들이 있습니다. 기본적인 Linear Regression이라든지 또는 이 Logistic Regression 이 두 가지 알고리즘들을 굉장히 쉬우면서도 굉장히 파워풀한 알고리즘인데 이것을 설명드리도록 하겠습니다. 이것만 잘 이해하신다면 사실 여러분들이 기본적인 머신러닝은 다 이해하셨다고 해도 좋고요. 또 이것만 이해하신다면 여러분들이 딥러닝을 쉽게 아주 쉽게 이해하실 수가 있게 됩니다.
이것이 이론적인 부분이고요. 또 이 이론적인 부분을 바탕으로 여러분들이 내가 가지고 있는 어떤 문제를 한번 풀어보고 싶다. 이런 생각이 드신다면 바로 Tensorflow, 그리고 여러분들 Python을 많은 분들이 사랑하는 랭기지 아닙니까? 이 Python을 가지고 개발할 수 있는 이 Tensorflow를 실제로 이용해서 여러분들이 문제를 풀어내는 정도의, 정도까지 갈 수 있을 것이라고 생각됩니다.
그래서 수업은 두 가지로 나눠지는데요. 여러분들이 지금 보시는 것과 같이 Lecture 형식의, 수업 형식의 10분 정도에 걸친 수업들이 진행될 거고요. 이렇게 짧게 한 이유는 여러분들이 지하철을 타고 가신다거나 아니면 잠시 이동 중에 또는 잠깐의 시간을 내어서도 충분히 보시면서 내용을 이해할 수 있고, 또 이 수업과 함께 병행하여서 Tensorflow라는 툴을 가지고 수업 때 다루어진 내용을 실제로 제가 한번 프로그래밍을 하는 것을 여러분들 보시기만 하면 어떻게 돌아가는구나 하는 충분히 감을 가질 수 있는, 이렇게 수업이 두 가지로 나누어서 수업과 이 Tensorflow를 가지고 직접 프로그래밍하는 튜토리얼을 이렇게 두 개로 나누어서 진행이 되겠습니다.
이 수업은 제가 처음부터 다 만든 것이 아니라 인터넷에 있는 많은 것들을 보고 저도 배우면서 만들고 있는데요. 그 중에 대표적인 것이 이 Andrew Ng 교수님의 수업입니다. 굉장히 유명한 수업이죠. 머신러닝 수업. 꼭 여러분들이 머신러닝을 더 깊게 이해하고 싶거나 또 영어가 어느정도 되시는 분들은 꼭 한번 듣기를 추천드리는데요. 이 수업의 내용. 그리고 이 수업을 듣고 자기가 개인적으로 노트를 정리하신 분이 계시더라구요. 이분의 노트를 많이 활용해서 제가 이 비디오를 만들었고, 또 이것도 온라인 수업인데요. Neural Network를 가지고 어떤 Visual Recognition에 사용하는 그런 비디오와 강의 동영상과 자료를 가지고 또 제가 만들었고 Tensorflow 부분은 오픈소스로 나와 있기 때문에 많은 자료들이 있습니다. Tensorflow 웹사이트와 또 Example들만 몇 개 또 다뤄놓은 소스들이 있는데 그 소스들을 참고해서 제가 만들었습니다.
대략적인 스케줄은 이제 다음 비디오부터 머신러닝이 무엇인가 하는 굉장히 기본적인 컨셉들에 대해서 이야기를 할 것이고요. 그것이 끝나고 나면 Linear Regression 그리고 Logistic Regression, 굉장히 기본적이면서도 파워풀하고 굉장히 중요한 컨셉입니다. 이것을 다루도록 하겠습니다. 그런 다음에 이것을 개선들을 좀 더 많은 형태의 입력 데이터 그리고 Feature, Vector 이런 것들을 가지고 이것을 처리하는 방법, 지금은 이제 이게 무슨 이야기인지 모르셔도 전혀 상관이 없습니다.
이것을 기반으로 이 정도만 이해하신다면 여러분들이 그 다음 Neural Network나 Deep Learning 같은 것들은 쉽게 아마 따라가실 수 있을 것으로 생각됩니다. 그러면 이 다음 비디오부터 이제 머신러닝의 베이직 컨셉에 대해서 다뤄보도록 하겠습니다.
'인공지능' 카테고리의 다른 글
머신러닝/딥러닝 입문 - Linear Regression(선형회귀) (66) | 2023.09.03 |
---|---|
머신러닝/딥러닝 강의 입문 - 기본 용어 해설 (48) | 2023.09.02 |
딥러닝(Deep Learning) 입문 - Deep하지 않은 입문 영상 요약 (0) | 2023.01.26 |
인공지능 관련 설명 - 초보에게 적당한 기사 모둠 (0) | 2022.10.07 |
인공지능 공부에 필요한 수학 개념 - 벡터(vector) (0) | 2022.10.07 |
댓글