그냥 개발자 블로그

[인공지능] 자바스크립트로 머신러닝 학습하기 - 원리 본문

프로그래밍팁/javascript

[인공지능] 자바스크립트로 머신러닝 학습하기 - 원리

마음이파파 2017. 8. 1. 09:30

4차산업혁명 시대는 이제 시작되었으며, 이는 누구도 멈출 수 없습니다. 많은 일자리가 줄어 들기 시작하고 새로운 일자리를 찾게 될지도 모릅니다. 반대로 더욱 일할 사람을 필요로 하는 직업군도 생기게 될것 입니다. 대표적으로 개발자가 이에 해당 합니다. 하지만 미래에는 인공지능과 빅데이터를 바탕으로 한 사회임으로 인공지능을 이해하고 다룰수 있는 개발자와 그렇지 못한 일반 개발자로 구분되어 개발자 간의 빈부 격차가 더 커질거라는게 제 생각 입니다. 그래서 저도 개념에 필요한 최소한의 인공지능 학습이 필요하였고 이 글을 작성하게 되었으며, 개인적인 관점에서 작성 되었습니다.



인공지능은 선형대수, 미분 등등을 이용하는 프로그램 개발이어서 어렵게 생각하고 과거에는 시도 조차 해보지 않았었습니다. 그러나 기초가 되는 원리는 간단했었습니다. 예를 들어 "1킬로미터를 0.62마일로 바꾸려면 어떻게 해야 할까?" 라는 문제가 있다고 가정 합시다. 당연히 우리는 이에 대한 답을 이미 알고 있지만 모른다고 합시다. 하지만 간단한 식은 만들어 볼 수 있을 겁니다. 


0.62 = 1 * ?


?에 여러 숫자를 대입해보며 시행착오를 격다보면 답이 나올 것 입니다. 인공지능도 동일한 원리로 동작 합니다. 하지만 컴퓨터인 인공지능은 사람보다 계산이 빠름으로 더 많은 수를 더 빠르게 대입해 볼 수 있습니다.



좀 더 자세히 들어가보면 "0.62 = 1 * ?" 에는 크게 두가지의 의미가 있습니다. 하나는 "1과 ?를 곱해서 0.62가 나온다"이고, 하나는 "0.62에 어떤 사칙 연산을 하면 1이 나온다"는 것 입니다. 인공지능 학습에서는 "1과 ?를 곱해서 0.62가 나온다"를 "정방향", "0.62에 어떤 연산을 하면 1이 나온다"를 "역방향"이라고 하며 이 둘을 적절히 이용하여 ?에 해당하는 답을 찾을 수 있습니다. 만약 수학적인 기술을 이용한다면 ?를 더욱 빨리 찾을 수 있습니다.


다음 시간에는 "1킬로미터를 0.62마일로 바꾸려면 어떻게 해야 할까?"의 문제를 가지고 실제 자바스크립트로 인공지능을 구현하는 방법에 대해서 설명 하겠습니다.




copyright ⓒ 2017. 워크식스