유클리디안 거리(Euclidean Distance) 혹은 유클리드 거리는 매우 심플하고, 베이직한 값들간의 거리를 구하는 알고리즘이다. 이틀 토대로 값들간의 유사도를 구할 수 있어서 유클리디안 거리로 유사도를 측정하는 방식을 유클리디안 유사도(Euclidean Similarity)라고도 하여, 같은 의미로도 인식 될 수 있다. 유클리디안 거리는 우리가 학창 시절(필자는 중학생 시절) 배웠던 피타고라스 정리와 같은 개념이라 생각하면 된다. 피타고라스의 정리는 이미 만들어진 삼각형을 이용한 공식이라 한다면, 유클리디안 거리는 삼각형을 만들어서 계산을 한다는 개념이라 인식하면 된다. 다만 추가적으로 차이점은 유클리디안 거리는 여러차원의 거리를 계산할 수 있다. 그래서 여러차원일 때의 공식을 보면 마치 엄청난 ..
필자의 주특기(?)중 하나가 추천 알고리즘을 만드는 것이기 때문에 추천 시스템에 대해서 간략히 적어보도록 하겠다. 사실 최근에 유튜브에서 유행하는 댓글 중에 이런 말이 있다. "유튜브의 알고리즘이 나를 여기로 이끌었다." 나를 왜 이 영상을 보게 만들었는지 모르겠지만 봐보니 재미있다 이런 내용들이 많은 이 드립에 사람들은 유튜브에 경의(敬意)를 표하게 된다. 그러나 사실 크게 어려운 개념이 아니라서, 이번 포스팅에 바로 이 추천 시스템 혹은 추천 엔진(Recommender Engine)에 대해서 설명하고 어떤 알고리즘들이 있는지를 확인해보도록 하겠다. 관심이 있을만한 컨텐츠를 추천하는 추천 시스템추천 시스템(Recommender System)의 개념- 컨텐츠의 내용에 기반하거나, 사람들의 행동들을 모은 ..
퍼셉트론(Perceptron)을 만든 로센블래트와 고등학교 동창이던 마빈 민스키 박사의 설전을 통해서 퍼셉트론이 대부분 해결할 수 없다는 것이 알려진 직 후, 인공지능의 1차 겨울이 오고 말았다. 퍼셉트론은 AND, OR, NAND와 같은 선형 문제는 풀 수 있었지만, XOR같은 비선형 문제를 풀 수 없었기 때문이다. 이로 인해 발생한 인공지능의 불신과 함께 인공지능에 투자하는 것이 급격히 줄어들게 되며, 조용히 사라지는 듯 보였지만 최초의 신경망이라고 불리는 퍼셉트론 방식과 다른 방식인 전문가 시스템(Expert System)을 통해서 인공지능은 다시 부활하게 된다. 전문가 시스템은 사실 룰(Rule) 기반 방식을 채택하고 있으며, 수많은 IF ~ ELSE(조건문)으로 만들어진 외관상으로 보이는건 인공..
오늘부터 티스토리(Tistory)의 데이터를 크롤링(Crawling)을 한 후, 추후 이 데이터를 기반으로 데이터를 분류(Classification), 회귀(Regression) 분석 등에 활용할 예정이다. 다양한 언어에서 데이터를 수집할 수 있지만, 필자는 자바(Java)언어가 베이스이기 때문에 데이터 수집과 전처리 단계에서는 자바를 활용할 예정이고, 데이터 분석은 파이썬(Python)과 R등을 이용해서 분석을 할 예정이다. 물론, TF-IDF나 나이브베이즈(Naive Bayes)같은 경우는 자바로도 충분히 쉽게 코딩하여 만들 수 있기 때문에 직접 코딩을 하면서 알고리즘을 설명하는 시간도 가질 예정이다. 티스토리 API 이해 우선 티스토리의 데이터를 크롤링하기에 앞서, 티스토리에서 제공하는 API를 이..
케라스(Keras) 설치가 완료되었으면, 이제 케라스를 이용해서 본격적으로 간단한 문제를 학습을 통해서 풀어보는 시간을 갖도록 하겠다. 학창 시절 방정식 문제를 지겹게 풀어봤을 터인데 컴퓨터의 학습은 바로 이 방정식으로 끝이 난다고 해도 과언이 아니다. y = ax + b 위에 있는 매우 쉬운 공식은 머신러닝과 딥러닝을 이해하기 위한 공식이며, 이것만 이해할 줄 안다면 모든 것은 아니지만 딥러닝을 학습할 준비는 모두 끝이 난 것이다. 위 공식을 기반으로 문제를 생성을 한번 해보겠다. 5 = a*2 + b 3 = a*1 + b 7 = a*3 + b 위 문제들을 보았을 때, a와 b의 값은 무엇일까? 사실 이정도는 수학과 담을 쌓은 사람이라고 해도 쉽게 풀 수 있을 것이다. 정답은 a=2, b=1 이다. 딥..
케라스(Keras)는 텐서플로우(Tensorflow)와 함께 대표적인 파이썬(Python)에서 사용하는 딥러닝(deep learning) 라이브러리이다. 많은 사람들이 텐서플로우와 케라스를 동일한 레벨에서 수행되는 라이벌 라이브러리라 착각 할 수 있지만, 둘은 라이벌 관계가 아니라 공생 관계라 할 수 있다. 이번 포스팅에서는 케라스에 대해서 간단히 개념에 대해서 설명을 하고 Python에서 케라스를 설치하는 방법에 대해서 간단히 적어보고자 한다. 케라스(Keras) 설명 케라스(Keras)는 파이썬으로 작성된 오픈 소스 신경망 라이브러리이다. MXNet, Deeplearning4j, 텐서플로, Microsoft Cognitive Toolkit 또는 Theano 위에서 수행할 수 있다. - 위키피디아 - ..
전세계적 베스트 셀러인 JUSTICE를 보면 처음부터 사람의 머리를 꽝 때리는 내용이 나온다. 바로 공리주의에 관련된 내용과 트롤리 딜레마에 대한 내용이다. 공리주의는 쉽게 말해서 대다수의 이익을 위한 행동을 뜻하며, 트롤리 딜레마는 바로 이러한 공리주의에 관련된 윤리학 실험이다. 인공지능의 가장 큰 적은 기술의 진보일 것 같지만 아이러니 하게도 이러한 윤리와 규칙, 철학이 가장 큰 장애물이다. 지금도 이슈지만, 한참 자율주행 자동차가 엄청난 관심을 받았던 시기가 있었다. 곧 운전에서 해방이 된다는 신나는 상상을 하고 있는 와중 전기 자동차의 선두주자인 테슬라(TESLA)에서 자율주행을 설정한 운전자가 죽고, 우버에서는 보행자를 죽게 만든 사고가 발생하면서 자율주행 자동차에 대한 심각한 회의론이 불기 시..
4차 산업혁명을 주도하는 것은 무엇일까? IoT? 5G? 3D Print? 블록체인? 뭐 다 맞는말이다 할 수 있지만, 4차 산업혁명이라는 것을 제대로 만들어주는 공격수는 인공지능(Artificial Intelligence)이라 할 수 있겠다. 5G가 된다 한들 우리는 4차 산업혁명이라는 것을 인지하지 못한다. 그리고 우리가 사용하고 있는 수많은 IT 기기들이 있다고 해도 IoT가 4차 산업혁명의 주역이라 인지하지 못할 것이다. 왜냐하면 3차 산업혁명과 차이점을 명확히 하기가 힘들기 때문이다. 우리의 머리속에 4차 산업혁명은 로봇들과 수많은 AI가 가득할 것이다. 즉 로봇들과 인간들이 공존하고, 인간의 업무를 대체하거나 편리하게 해주는 세상. 즉, 4차 산업혁명의 핵심은 인공지능이라고 자신있게 말할 수 ..
기계 학습은 매개변수인 W(weight, 가중치)와 B(bias, 편향)을 찾기 위해서 반복 작업을 하는 것으로 해석할 수 있다. 최적화 알고리즘(optimizer)는 이 매개변수를 찾기 위한 최적화된 알고리즘을 제공하는 것인데 가장 기본적인 것으로는 Gradient Descent가 있다. 이름에서 풍기는 것처럼 기울기를 구한 후, 기울기가 낮은 쪽으로 계속 이동시켜서 극값에 이를 때까지 반복한다. 좀 쉽게 이해를 하자면, 우리가 산을 등산한다고 가정을 해보자. 꼭대기로 이동을 한다면 인간은 어떻게 움직일 것인가? 바로 경사가 높아지는 쪽으로 계속 움직여서 정상에 도착을 할 것이다. 반대로 하산한다면, 경사가 낮아지는 쪽으로 움직일 것이다. 이 간단한 원리가 바로 Gradient Descent이다. 위와..
현재 대기업들이 빅데이터 시장에 과감하게 투자를 하고 있다. Infra, S/W, Service 등 3가지고 분류하고 있는 빅데이터 분야 모두 성장할 것으로 전망하고 있으며, 미국 지디넷(ZDNET)은 빅데이터 및 분석 시장이 2019년까지 1,879억 달러 규모로 성장할 것이다라고 할 정도로 장밋빛 전망을 하고 있을 정도이다. 이처럼 빅데이터는 생소했던 2011년 부터 앞으로의 미래까지 기업들이 끊임없이 투자하는 분야로 자리 잡게 될 것이다. source, Forecast of Big Data market size, based on revenue, from 2011 to 2027 - Statista 재편집 빅데이터의 끊임없는 발전과 동시에 다양한 빅데이터 분석이 발전되기 시작하였는데 그 중에서 최근에는..
최근 들어서, 지극히 개인적인 나에게 이슈거리가 2가지 있었는데 하나는 블록체인(Blockchain)이고, 하나는 A.I 면접관이다. 작년 2017년 6월 22일 문재인 정부가 '블라인드 채용'을 발표하면서, 정부에 민감하게 따라가는 중견기업 이상들을 해당 채용 방법을 검토해보기 시작하였다. 많은 구직자들은 스펙에 민감하고 실제 업무보다 스펙 쌓기에 미친듯이 몰두한다. 그러다 보니 막상 스펙으로는 끝판왕의 인재(人才)가 나왔다고 생각하지만 실무에 투입되면 이런 바보가 없을 정도다. 실무에 기반하지 않다보니 이런 기형적인 인재(人災)들이 나오게 되었는데, 이를 위해 스펙을 보지 않고 직원을 뽑으라는 블라인드 채용이 나와 버린 것이다. source, 블라인드 채용 가이드북블라인드 채용이란? 블라인드 채용이란..
현재 문재인 정부는 블라인드 채용을 강조하고 있다. 블라인드 채용은 한마디로 스펙을 보는 것이 아니라 그 사람의 실력을 보는 것인데 그러다보니 기존의 이력서를 참고하지 않고, 오로지 자기소개서만의 내용으로 사람을 선발하고 면접을 보게 되는 것이다. 최근에 우리 회사도 인턴들을 대상으로 블라인드 채용을 실시한 적이 있다. 공고에서 지원한 사람들의 자기소개서를 읽고 마음에 드는 사람에게 과제를 내주는 방식이었는데, 문제는 과제를 내는데 여기서 좋은 학교나 자신의 강점을 말하고 싶은 사람은 과제에 은근히 학교명이나, 석사 여부등을 올리거나 자기소개서에 유추를 할 수 있게 올리곤 한다. 블라인드 면접을 보면서 느꼈던 점은 면접과 발표자의 실력이 크게 연관되지 않는 느낌이었다. 돌이켜 생각하면, 내가 그동안 회사..