Jeremy Howard: 컴퓨터 학습이 가져올 훌륭하고도 끔찍한 잠재적효과

이 강의를 보고 딥러닝 (Deep learning)에 더 관심을 가지게 되었다. 2015-1학기에 듣고 있는 인공지능 수업에서도 한동안 침체기였던 AI가 하드웨어의 발전 (GPU를 이용한 Multi-core 연산)과 알고리즘의 점진적인 개선으로 인해 2010년대를 기점으로 티핑포인트를 맞았다고 했다.

이런 내용은 Ray Kurzweil이 제안한 기술적 특이점과도 맥락을 함께하는데, 이는 마치 인류의 진보가 산업시대 이전으로 회귀할 수 없는 것 처럼, 정보화 사회에서 회귀할 수 없는 특정한 지점을 이야기하는 것이다. 기술적 특이점 이후에는 기술 발전이 인간에 의해서가 아니라 기계 스스로 이룩하게 되기 때문에, 오랜기간동안 선형적으로 증가하는 것처럼 보였던 기술이 멱등적으로 증가하게 된다는 내용이다.

이 내용을 소재로 쓴 Ted Chiang의 멋진 SF 단편 “인류 과학의 진화”도 있다. 소설의 내용은 두 과학자가 보내는 서신이다. 기술의 진보를 인간이 설계한 AI가 대행하는 시대에서 AI의 발전 속도가 너무 빠르다보니, 인간은 무슨 기술인지 이해하지도 못한 채 나노 기술 등의 것들을 일방적으로 수용하는 상황에 이른다. 그래서 과학자는 예전처럼 자연현상을 밝히는 것이 아니라, AI가 알려준 기술들 중 원리를 알아내고 싶은 분야를 정해서 해석하는 역할만 수행하게 된다. Ted Chiang은 허황된 판타지라고 느껴지기 보다 정말 있을 법한 일처럼 느껴지도록 현재와의 개연성을 잘 부여하는 작가라고 생각한다. 그래서 이 10페이지가 채 안되는 단편이 크게 다가왔던 것 같다.

잠시 왜 Deep Learning이 기술적 특이점과 연관관계가 있는지 생각해보자. 이전까지의 기계학습은 대부분 데이터에 기반한 지도학습 (Supervised Learning. 인간의 개입이 있는 학습)이였다고 볼 수 있다. 일부 비지도학습 (Unsupervised Learning. 라벨링 되지 않은 것을 기계가 스스로 찾는 것)도 존재했으나 초보적인 수준의 군집화 알고리즘을 제공했고, 정확도도 인간이 수동으로 하는 것에 비해서 떨어졌기 때문에 컴퓨터가 제공할 수 있는 것은 빠른 속도 뿐이였다.

하지만 인간의 뇌를 모방한 인공신경망 알고리즘의 발전으로, Deep learning이 강력한 툴로 부상하게 되었다. 이는 “연산”이 아니라 “경험”을 빠르게 할 수 있는 컴퓨터를 만들 수 있다는 점에서 상황이 크게 달라졌다. 이제 컴퓨터는 “최적해”를 찾는 것이 아니라 무작위적인 경험을 통해 “인사이트”를 얻는다.

이미테이션 게임이라는 영화를 보면, 주인공인 앨런 튜링이, “인간은 인간의 생각을 하고 기계는 기계의 생각을 가진다”라고 하는 장면이 있다. 그렇기 때문에 인간은 기계가 생각하지 못한다고 단정할 수 없다고 튜링머신을 변호하는데, 사실 개인적으로는 이런게 수사적인 표현일 뿐이라고 느껴졌었다. 인간이 사용하는 도구가 인간과 사고하는 방식이 근본적으로 다르다면 아무리 영리하더라도 효용성이 없기 때문이다.

하지만, 인공지능 교수님 말대로 컴퓨터가 빠른 계산기를 넘어, 문제 해결이 가능한 툴로써 발전된다면 응용할 수 있는 영역은 무궁무진하다.

아래에 “생각”에 대한 나의 견해가 있다.

인간은 스스로 생각을 만든다고 여길지 모르지만, 사실 일생동안 경험적인 것들 중 좋았던 것들을 취사선택하여 ‘생각’으로 만든다. 이런 경험적인 방식이 생물이 진화하는 방식이고 인간도 이러한 굴레를 벗을 수는 없다.

그렇기 때문에 “경험”을 빠르게 시뮬레이션 할 수 있는 기계가 탄생한다는 것은 여러 사람이 일생동안 경험할 수 있는 것을 찰나에 해볼 수 있다는 것과 같은 의미이다. 그렇기 때문에 신경망을 기계로 옮긴 Deep Learning이 기술적 특이점의 서막을 여는 것이 될 수 있다고 생각한다.

영상에서는 특정 Domain의 전문지식이 전혀 없는 사람도 단순한 라벨링과 Deep Learning을 통해서 그 동안 전문가들이 하지 못했던 것을 해결했다고 나온다. 강연자는 앞으로 사람이 할 일을 기계로 대체하는 것이 더욱 가속화되면서 “문제해결”에 특화된 직종인 전문직과 서비스업도 창의성이 없다면 위험해 질 것이라고 예견한다. 어쩌면 제2의 러다이트 운동이 나타날지도 모른다.

개인의 측면에서 데이터를 이용한 자동화 된 문제해결 방식을 남들보다 빨리 받아들이는 것이 큰 경쟁력이 될 것라고 생각한다. 경험을 전수하는 비용이 0에 가까워진 사회에서 기존의 보편적 교육이 의미를 가질지도 의문이다. 지금도 이미 공개된 정보를 많이 암기하고 있는 것은 의미가 없는 사회가 되어버렸으니 말이다.

Machine Learning #1 – Andrew Ng

이 글은 Coursera에서 Andrew Ng의 Machine Learning 강의를 듣고 요약한 것입니다.
강의를 들으신분들이 Remind할 때, 기계학습에 대한 지식이 있지만 개론적인 내용을 다시 듣고 싶을 때 좋은 자료라고 생각합니다.


 

Introduction

기계 학습의 종류
  • Supervised Learning (통제된 학습)
    주어진 해답(Right Answers given)을 기반으로 추론하는 것

    • Regression
      Predict continuous valued output (회귀분석 : 연속된 값을 가지는 결과를 추론하는 것)
      ex) 집의 평수에 따른 가격 예측
    • Classification
      Discrete valued output (0 or 1 같이 딱 떨어지는 결과를 가지는 것)
      ex) 종양 크기에 따라 암이 악성인지 양성(yes or no)인지 구분하는 것, Type 1/Type 2/Type 3 Cancer의 구분
  • Unsupervised Learning (통제되지 않은 학습)
    성격이 특정 되어있지 않은 데이터를 기반으로 추론

    • Clustering
      비슷한 것 끼리 모으기
      ex) 뉴스 클러스터링 (같은주제 찾기), 컴퓨터 서버 클러스터 구성, SNS 분석, 마켓 세그멘테이션 분석, 천문자료 분석
    • Cocktail party problem
      두 개의 음성이 한 마이크에 함께 녹음 되었을 때 각각을 추출해 내는 문제
      일반적인 C++, Java 코드로 짜면 매우 복잡하나, Octave라는 Matlab의 Opensource 버전을 사용하면 한 줄로 해결이 가능하다.
Cocktail party problem 알고리즘의 예)

[W,s,v] = svd((repmat(sum(x.*x,1), size(x,1),1).*x)*x’);

SVD : singular value decomposition
처음엔 Octave로 알고리즘을 고안한 뒤에 실무 적용시에 Java 같은 기성언어로 다시 짜는 방법이 훨씬 쉽다.

Linear Regression with One Variable

표현방식
Training set : 잠재적으로 예상되는 관계를 찾기 위해 필요한 Data Set
m : Training set의 개수
x : features. 입력 변수
y : target variable. 목표가 되는 변수
x(i), y(i) : Training set의 i 번째 값. 제곱이 아니라는걸 보여주기 위해서 괄호로 쌌다.
Training set -> Learning Algorithm -> Making Hypothesis Function.
데이터 셋을 통해서 알고리즘을 배우고, hypothesis를 찾아낸다.
그 hypothesis function (h)에 x를 입력하여 예상되는 y를 알아낸다.

Linear Regression

Image (1차 함수)
목표는 예상되는 h(x)와 Training set의 차이를 Minimize(최소화) 시키는 것이다.
최소화 시키는 함수를 Cost Function 이라고 한다.
Cost Function의 해는 x가 아니라 2 이다.
3
y는 Training set의 y. h는 hypothesis의 y
둘의 차를 제곱하면 모든 등호가 양으로 바뀔 것이고, 모두 더한 다음 평균을 내면 m의 개수에 영향을 받지 않게 된다.

Simplified Cost Function

4
 5
Cost function의 해는  6 한 개 뿐이다.
이런 경우 Cost Function J의 최적해 그래프는 2차 함수 형태를 띄게 된다. (6를 제곱하게 되므로)

Linear Regression Again

다시,  2 두 개의 해를 갖는 cost function으로 돌아가면,
최적해 그래프가 4차 함수 형태를 띄게 되는데, 3차원 포물선 그래프를 띄게된다.
포맷변환_7
이런 그래프는 표현하기가 어려워서 잘 쓰지 않고, 대신에 contour plots (등고선)라는 그래프를 쓰게 된다.
포맷변환_8