이번 글에서는 batch와 mini-batch, 확률적 경사 하강법을 알아보자. 배치의 정의와 GPU (Batch) 현대 머신러닝의 비약적인 발전 배경에서 GPU는 빼놓을 수 없는 요소이다. CPU 대신 GPU(Graphic Processing Unit)를 이용한 가속 컴퓨팅이 머신러닝 기술의 발전을 불러온 것은 익히 알고 있을 것이다. GPU가 CPU보다 유리한 점은 병렬 연산이다. CPU는 연산을 Queue에 담긴 순서대로 빠르게 처리한다. 마치 대학생이 선형대수 과제 문제를 1번 ~ 20번 순서로 푸는 것과 같다. 반면, GPU는 수만 픽셀의 그래픽 연산을 빠르게 처리하기 위해 여러 연산을 한 번에 처리하는데 특화되어 있다. 이는 비유하자면, 초등학생 20명이 각각 덧셈 문제를 푸는 것과 같다. 위..
데이터 일반화 vs 표준화 (Normalization and Standardization of Data)
2020.04.28
머신러닝 용어 중 가장 헷갈리고, 면접 질문 등에도 단골로 등장하는 것들이 바로 Normalization, Standardization 그리고 Regularization이라고 생각한다. 실제로 필자도 모 AI 기업 면접에서 긴장한 나머지 이것들을 헷갈린 적이 있다. ~zation이라는 유사성과 같은 단어라도 표준화, 일반화, 정규화 등 여러가지로 번역된 점이 이 단어들을 헷갈리게 만든다고 생각한다. 오늘은 이 중에서도 데이터와 관련된 일반화Normalization와 표준화Standardization를 다뤄보고자 한다. (Regularization도 매우 중요하니 다음에 다뤄보겠다!) 제목은 한글로 쓰는 내 나름의 블로그 방침 상 번역된 이름을 썼지만, 아래부터는 혼동을 방지하기 위해 영어를 주로 쓰겠다...
딥러닝을 공부하다 보면, Convex 한 함수, 문제의 Convexity 등에 대한 언급을 자주 접하게 된다. 요즘은 국내에도 이를 다룬 쉬운 글이 많지만, 이상하리만치 필자는 이 Convexity를 이해하기가 힘들었다. 몇 시간에 걸친 공부를 마치고 이를 정리해보고자 한다. Convex의 정의 Convex는 볼록하다는 것을 의미한다. 수학에서 Convex는 대상이 집합이냐 함수냐에 따라 개념이 약간 다른데, 먼저 함수에서의 Convexity를 알아보고, 집합에서의 Convexity를 간단히 알아본 후, 딥러닝과 Convexity의 상관관계에 대해 다루도록 하겠다. 함수의 Convexity Convex 함수는 볼록 함수라고 하며, 이름 그대로 볼록한 함수를 의미한다. 이때, 우리가 고등학교에서 흔히 배운..
경사하강법과 손실 함수: 심층 신경망 학습시키기 (Gradient Descent and Loss Function)
2020.01.23
이 글은 나만 알기 아까운 딥러닝 시리즈에 포함된 글입니다. 그러나 전체 글을 읽지 않아도 이해할 수 있습니다. 전체 목차는 여기에서 확인하실 수 있습니다. 지난 글에서는 퍼셉트론이라는 모델을 활용해 간단한 문제를 해결하고, 퍼셉트론을 여러 계층으로 쌓아 복잡한 문제를 해결할 수 있는 방법을 배웠다. 그러나 다층 퍼셉트론(Multi-layer Perceptron)의 문제는 퍼셉트론의 개수가 늘어날 때마다, 개발자가 설정해야 할 가중치(Weight)가 많아져, 금방 사람의 직관으로는 설정이 불가능한 지점에 도달하는 것이었다. 예를 들어보자. 3과 4가 주어졌을 때, 7을 출력하는 퍼셉트론을 설계하는 것은 쉽다. 각 가중치가 1이고, 입력된 값과 가중치를 그대로 더해 출력하는 퍼셉트론을 쓰면 된다. 그러나,..
이 글은 나만 알기 아까운 딥러닝 시리즈에 포함된 글입니다. 그러나 전체 글을 읽지 않아도 이해할 수 있습니다. 전체 목차는 여기에서 확인하실 수 있습니다. 딥러닝의 기반 이론인 인공신경망(Artificial Neural Networks:ANN)은 인간의 뉴런 세포들과 이들이 시냅스를 통해 연결된 구조를 컴퓨터 내부에서 수학적 모델로 구현해보고자 한 월터 피츠 교수의 연구에서 시작됐다. 그의 논문이 나온 후 1958년, 프랭크 로젠블렛 교수는 인공신경망의 뉴런 역할을 수행할 수학적 모델인 퍼셉트론(Perceptron)을 제안했다. 퍼셉트론은 일종의 선형 분리기인데, 여기서 선형이란 아주 크게 보면 그래프가 직선으로 표현되는 1차 방정식을 의미한다고 보면 된다. f(x) = ax + b 위 식에서, a와 ..
2016년, 구글의 바둑 인공지능 알파고가 인간 바둑 기사 이세돌을 이긴 이후, 바야흐로 딥러닝의 시대가 도래했다. 사실 학계에서는 이미 2012년부터 딥러닝이 이슈화 되어가고 있었지만, 단순한 비싼 계산기 혹은 게임기로만 알았던 컴퓨터가 인간을 인류 역사상 가장 복잡한 전략 게임에서 앞질렀다는 사실은 특히 바둑의 본고장인 아시아에 큰 충격을 가져왔다. 정치인, 교육자, 학부모를 비롯하여 수많은 사람들이 인공지능 얘기를 시작했고, 이 중 일부는 실용적이고 깊은 수준으로 발전하기도 하였고 일부는 인공지능과의 미래에 대한 막연한 공포를 조장하는 루머로 번지기도 했다. 그러나 사실 인공지능 기술, 특히 딥러닝에 대한 연구는 1900년대부터 진행 중이었고, 최근 개발된 AI에도 이 기술들이 적용된다면 믿을 수 ..
개요 딥러닝을 처음 배우고, 복잡하고 어려워 보이던 단어들이 점차 무엇인지 알아가기 시작했을 때부터, 이렇게 재밌는 딥러닝을 더 많은 사람에게 전하고 싶다는 생각이 있었다. 딥러닝은 분명히 어렵고, 수학과 영어같은 기반 지식들이 필요한 학문이지만, 결국은 어려운 일을 쉽게 해결하는 방법을 찾는 학문이다. 예를들어, 패턴 인식이나 객체 감지(Object Detection)과 같은 분야는, 전통적으로 매우 복잡하며 어려운 선형대수학 및 기하를 활용한 식과 하드코딩을 통해 해결해나가는 영역이었다. 그러나 딥러닝은, 기하에 대한 지식이나 깊은 이해가 없는 사람도 단순한 사각형이나 원과 같은 도형을 넘어 개와 고양이를 분류하고, 횡단보도를 건너는 사람을 인식하는 프로그램을 구현할 수 있게 해준다. 딥러닝을 연구하..