몇년 전만 해도 ...
"머신러닝을 전공했다"라고 말하면,
"뭐라고요 ? 러닝 머신을 전공 했다고?"
라는 우스게 소리 자주 듣던 적이 있었습니다.
3~4년 전만 해도 그런 분위기 였었습니다.
그러나, 최근에는 인공지능/머신러닝 이라는 단어는 그냥 일반적인 용어가 되어 버렸네요.
격세지감을 느끼지 아니할 수 없다.
"인생사 새옹지마"라고 하지만, 참 세상 일이란 게....참....알다가도 모를일 아닌가요?
더욱이, 석사와는 다른 학교/다른지도교수님에게서 박사과정을 마친 저는,
머신러닝에 익숙하지 않으신 교수님을 설득하는데만 1년의 시간을 보냈는데,
요즈음은 머신러닝을 설명하는 것 자체가 웃긴 일이 되어 버렸죠.
비전공자도 머신러닝 책을 쓰는 시대이니깐 말이죠.
백마디의 말 보다,
백번의 설득 보다,
"AlphaGo와 이세돌의 바둑" 한 방으로 사람들이 머신러닝을 이해 해 버렸고,
이제는 전기차인 TESLA 와 자율주행 자동차들의 진격으로 더욱 일반적인 기술이 되었습니다.
그런데, 한편으로 크나큰 부작용이 있더군요.
" 기계가 학습해서 해주면 되겠네 "
" 기계가 학습하면 스카이넷이 되는것 아니야? "
" ㅇㅇㅇ 이런 문제도 머신러닝 쓰면 되잖아... "
" 오호~ 이런건 머신러닝으로 학습하면 되겠어... " (엥???)
등에 대한 막연한 환상, 기대, 과장들이 그것 입니다.
서점에 가면, " ㅇㅇㅇ 머신러닝 시대 xxx " 등의 서적이 많이 보입니다.
잠깐씩 쓰윽 봤는데, 너무 유행 따라 급하게 써놓은 듯한 글들도 상당수 보이더라구요.
물론, IT기술을 업으로 하지 않으신 분들은 그렇게 읽으셔도 되는데, IT 직종에 계시는 분들도 이와 같은 종류의 책을 기반으로 프로젝트를 추진하시는 분들도 뵈었습니다.
최근,
현 직장에서 3개월간 "머신러닝"을 주제로 강의를 진행했었는데, 머신러닝에 대하여 알고 싶은 분들이 꽤 많았습니다. ^^
처음에는 매우 좋았는데, 나중에 알고 보니 참석하신 분들의 기대치가, 서점에서 소개하는 그런... 뜬구름이 많이 껴 있더랍니다.
이러한 현황 때문에 머신러닝에 대한 막연한 기대감/모호성을 많이 가지고 있었습니다.
데이터가 어떤 것이 있는지,,도 모르는 상태에서,
머신러닝을 활용한 목표는 이미 설정이 되어 있는 과제는 착수 되어 있는 상태 ^^;;
이럴 때 보통,
"데이터 샘플을 가져와 보시면 가이드 해 드리겠다"라고 말씀 드리면, "전문가가 아니구나..."라고 생각하는 듯한
뉘앙스를 듣고 했습니다. ^^ㅎㅎㅎ
그래서 요즘 이런 생각이 듭니다.
차고 넘 쳤다
- 머신러닝에 대한 소개 (유행성 서적)이 참 좋긴 한데, 과유불급이 되어 버렸다는 생각입니다.
또, 이래서 결심 했습니다.
머신러닝 다시 전달 해야 겠다...!
이제 부터 머신러닝의 기본부터 기초적인 구현까지 진행해 볼 랍니다.
머신러닝이 무엇인지 생각해보고,
Tensorflow에 대한 이야기도 할 것이고, 이를 쉽게 다루기 위해 Wrapping 해 놓은 Keras도 거론할 예정입니다.
Tensorflow는 취급하기 쉬운 Python 환경에 서 구동하는게 좋겠습니다. (그냥 편해요..)
심심하면, Kaggle에 있는 데이터를 사용해서 실제 돌려 보고,
그래도 흥미가 떨어지면, 비트코인 / 주식데이터을 돌려 볼겁니다.
그런데, 이렇게 하다 보면, 데이터를 정제/분석/가공해야 될 꺼구요.
그 과정에서 우리는 필연적으로 데이터과학 (Data Science)를 습득하게 될 겁니다.
예를 들면, Python의 Panda를 이용한 데이터분석을 하기 싫어도 하게 될겁니다.
그래도 심심하고 재미 없으면, 강화학습 (Reinforcement Learning) 등을 이용해서 Game Learning을 해봅시다.
본 격적인 것은 다음 글에서 시작할 예정입니다만, 오늘은 어원을 잠시 생각해 봅시다.
머신러닝 (Machine Learning)....?
한글로 하면 기계학습 이고, 기계가 스스로 학습한다는 것인데,
기계가 스스로 알아서 배워서 자동화 한다면, 그것 참 멋지네..
Sky Net 세상이 올 수도 있나 ??
라고 생각 하면 아니되구요.
기계가 스스로 학습하기는 하는데,
무엇을 어떤 결과(목표)로 학습할지 설정해 주어야 합니다.
인간의 목표 설계가 필수적이지요..
나중에 거론 하겠지만,
학습을 하려는 기계도 이렇게 목표를 설정해 주어야 합니다.
어떤 것을 목표로 어떤 기준으로 너가 학습을 할래?
(목표가 뭐야, 수능 만점이야? 인성이 좋은 거야? 돈을 많이 뭐는 거야... 뭐야???)
이 때문에 Cost Function / Objective Function / Target Variable 등이 매우 중요한 요소가 됩니다.
그런데, Cost Function 은 보통 연산(미분)을 필요로 하기 때문에, 수식으로 기술하는데..
이러면, 많이들 싫어하세요... (이런 부분은 대충 이해하고 넘어 갈 수 있도록 가이드 예정입니다.)
한마디로, 머신러닝 알고리즘은 무엇인가?라고 하면요.
아이들 아빠 같은 경우는, 아이들에게 간단한 문제를 주고, 적당한 선을 그어 보라는 이야기를 많이 하는데,
바로~~~ 그겁니다.
사람(설계자)가 INPUT과 OUTPUT, 그리고 목표(지향가치)를 설정해 주면,
설계자가 지향하는 것에 최적치를 구해 주는 문제이고요.
저는 이것을, 목표에 맞는 "선그리기"라고 표현 합니다.
[텐서플로우 - TFIO] 텐서플로우 io 에러 (NotImplementedError) (0) | 2022.09.06 |
---|---|
머신러닝을 어떻게 시작할것인가? (7) | 2020.03.15 |
댓글 영역