yssskim2의 등록된 링크

 yssskim2로 등록된 네이버 블로그 포스트 수는 51건입니다.

AI 수학의 수 이해하기 [내부링크]

수(數)의 종류 실수(實數, Real Number) : 실생활에 사용되는 모든 수로, 유리수 + 무리수 유리수(有理數, Rational Number) : 자연수+정수+분수+소수 .자연수(自然數, Natural Number) : 1, 2, 3, 4, 5, … .정수(定數, Integer) : …. -3, -2, -1, 0, 1, 2, 3, …. .분수(分數, Fraction) : 1/2 등으로 표현 .소수(小數, Decimal) : 0.12처럼 0 이상이면서 1 미만인 수들을 분수로 사용하지 않고 소수점을 이용해 표현한다. 이때, 소수점 아래가 어디까지 한정된 소수는 유한소수, 무한대로 반복되면 무한소수라 부른다. 무리수(無理數, Irrational Number) : 고대 그리스에서 발견되었으며, 2의 제곱근(1.414213….)처럼 규칙적이지 않은 숫자가 무한으로 반복되어 분수로 표현되지 못하는 수가 된다. ※ 참고로 허수(Imaginary Number)는 제곱하면 -1이 되는 수이

AI 함수 [내부링크]

함수(函數, Function)는 마술 상자처럼 x를 넣었을 때 y가 나오는 관계라 하고, y를 f(x)로 표기한다. 합성함수(合成函數, Function Composition)는 두 함수를 합성하여 얻은 함수이다. 함수 h가 두 함수 f와 g의 연쇄로 나타내어질 때, h를 f와 g의 합성함수라고 부르고, 대개 h(x)= g(f(x)) 표시하며, 제일 안쪽함수부터 계산한다. 역함수(逆函數, Inverse Function)는 함수의 독립 변수와 종속변수 사이의 관계를 거꾸로 한 함수이다. y = f(x)에서 거꾸로 되는 역함수는 f−1(y)=x가 되는 것이다. 손실함수(損失函數, Loss Function) 또는 비용함수(費用函數, Cost Function)는 실제 값과 예측값의 차이(Loss 또는 Cost)를 수치화해주는 함수이다. 오차가 클수록 손실함수의 값이 크고, 오차가 작을수록 손실함수의 값이 작아진다. 손실함수의 최솟값을 효율적으로 찾는 방법이 최적화 알고리즘이 된다. 그리고 손

Bit와 Byte 이해 [내부링크]

Bit는 0 또는 1을 가지는 가장 작은 단위이며, 0과 1의 조합이 8개인 (예; 01000011) 것을 Byte라 부른다. 이때 0과 1로 만들어진 부호를 Code라 부르고, 0과1의 Code를 통해 행위를 하게 하는 걸 Coding이라고 한다. 애플로고 Apple의 로고는 원래 사과 모양만 생각하다 왠지 밋밋하여 Bite (Byte와 발음이 같다)한 로고로 확정했다는 Story도 있다. Encoding은 0과 1들을 사용하여 컴퓨터가 이해할 수 있는 언어로 만드는 것이고, Decoding을 이런 컴퓨터언어를 인간이 이해할 수 전환해 주는 것이다. Encoding 할 때는 영어 알파벳의 경우 8개 Bit(즉 1 Byte)로 처리가 되고 이를 통일되고 표준화하여 사용하기 위해 미국표준협회에서 아스키(ASCII, American Standard Code for Information Interchange)를 만들어 관리하였지만, 한글과 중국어는 8개 Bit로는 다 충족하지 못해 16

R과 Python의 차이 [내부링크]

[R] - 통계 컴퓨팅, 그래픽 표현 및 보고 위한 프로그래밍 언어 및 소프트웨어 환경 - R Foundation for Statistical Computing에서 지원 - 데이터구조: 벡터, 목록, 행렬, 배열, 인자 및 데이터 프레임과 같은 데이터구조 지원 - switch 문을 지원 - R 프로그래밍을 위한 일반적인 IDE는 Rstudio - R은 통계 컴퓨팅, 기계 학습 및 데이터 분석에 사용 [Python] - 범용 프로그래밍을 위해 해석된 고급 프로그래밍 언어 - Python Software Foundation에서 지원 - 목록, 사전 및 튜플과 같은 데이터구조 지원 - switch 문을 지원하지 않음 - Python의 일반적인 IDE는 PyCharm과 Eclipse - Python은 기계 학습, 웹 개발, 네트워킹, 과학 컴퓨팅, 자동화, 자연어처리 등과 같은 여러 애플리케이션에 사용

Top 10 Python Libraries for Data Science (파이션 10대 라이브러리) [내부링크]

1. TensorFlow : 구글이 지원하는 고성능 수치 계산을 위한 라이브러리이다. 다양한 수학 및 과학 분야에 걸쳐 사용되고 있으며, 음성 및 이미지 인식, 텍스트 기반의 응용 프로그램, 시계열분석 및 비디오 탐지 등에 강하다. 2. NumPy(Numerical Python) : 수치 계산을 위한 기본 패키지이며, 강력한 N차원 배열 개체를 포함한다. 어레이라고 불리는 고성능 다차원 객체와 함께 작업하기 위한 도구를 제공하는 범용 어레이 처리 패키지이며, 어레이에서 효율적으로 작동하는 기능과 연산자를 제공함으로써 속도 저하 문제를 해결한다. 벡터화를 통한 작고 빠른 계산과 데이터 분석에 사용된다. 3. SciPy(Scientific Python) : 데이터 과학을 위한 공개 소스 파이썬 라이브러리이며, 높은 수준의 계산에 광범위하게 사용된다. NumPy를 확장하고, 과학적 계산이 많은 사용자에 친화적이고, 효율적인 루틴을 제공하기 때문에 과학 및 기술 계산에 광범위하게 사용된다.

앨런 튜링(Alan Turing)의 튜링테스트 [내부링크]

튜링테스트는 인간처럼 생각하는 인공지능을 판별하는 기준으로 간주했다. 이에 대한 설명이 제일 쉽게 느껴지는 나무위키의 정의를 살펴보자. 기계가 인간과 얼마나 비슷하게 대화할 수 있는지를 기준으로 기계에 지능이 있는지를 판별하고자 하는 시험으로, 1950년 앨런 튜링이 제안한 시험이다. 이미테이션 게임이라고도 부른다. 인공지능 연구의 초기 단계에서는 지능이 무엇인지에 대한 명확한 해답이 존재하지 않았다. 무엇이 인간다운 것인지도. 2500년 역사를 자랑하는 철학조차도 인간, 인간다운 것이 무엇인지 기준선을 제시하지 못했으니 어찌 보면 당연한 일이다. 그런 상황에서 튜링은 인공지능의 기준선을 정하는 것은 나중으로 미루고, 일단 인간이 보기에 인간 같은 것(소위 인공지능)을 인간에 준하는 지능이 있다고 간주하기로 한다. 즉 앨런 튜링은 “마음과 지능, 인간다움의 본질에 대한 논의는 그만두고, 일단 이 시험을 통과하는 모든 것은 확실히 ‘지적이다’라고 합의한 다음에, 이 시험을 통과하는 기

존 설의 중국어 방(The Chinese Room) [내부링크]

먼저, 존 설(John Rogers Searle, 1932년~)은 중국 사람이 아니라 중국어를 전혀 모르며, 미국 덴버에서 태어나 버클리에서 언어철학과 심리철학을 가르치는 미국인 교수이다. 존 설은 튜링테스트(즉 기계의 지능 테스트)로는 기계의 인공지능 여부를 정확히 판정할 수 없다는 것을 증명하기 위해 중국어 방 실험을 고안해 냈다. 여기서도 설명이 쉬운 나무위키의 정의를 살펴보자. 어느 방 안에 중국어를 모르는 사람(영어 사용자) 1명을 넣어둔 후, 그 사람에게 중국어로 된 질문과 답변서를 제공한다. 여기에 중국인이 중국어로 질문을 써서 방 안으로 넣으며, 방 안에 있던 사람은 중국어를 전혀 모르더라도 질문/답변서를 토대로 알맞은 대답을 중국어로 써서 중국인에게 건네준다. 그냥 평범한 사람들이 보기에는 방 안에 있는 사람이 진짜 중국어를 할 줄 안다고 생각하겠지만, 실제로는 질문도 답변도 모르는 상태에서 기계적으로 대조해보고 답안을 제출할 뿐이지 정말로 중국어를 알고 대답하는 것

기술적 특이점 / 싱귤래러티(Singularity) [내부링크]

기술적 특이점(Technological Singularity) 또는 싱귤래러티는 2005년 레이 커즈와일, 『The Singularity is Near』라는 책이 나오면서 유명해졌다. 위키백과의 정의를 보면, 기술적 특이점(技術的特異點, 영어: Technological singularity, TS)은 인공지능(AI)의 발전이 가속화되어 모든 인류의 지성을 합친 것보다 더 뛰어난 초인공지능이 출현하는 시점을 말한다. 즉, 특이점이란 미래학에서 문명의 미래 발전에 가상 지점을 뜻하는 용어로서, 미래에 기술 변화의 속도가 급속히 변함으로써 그 영향이 넓어져 인간의 생활이 되돌릴 수 없도록 변화되는 기점을 뜻한다. 대표적인 특이점 주의자인 버너 빈지(VernorVinge)의 경우 특이점의 도래를 2005년으로 추산하였으나, 20세기에 비해 21세기의 기술적 진보가 크게 약화함으로써 기술적 특이점의 도래에 대한 가상 이론이 재논의되었다. 인공지능 과학자 겸 미래학자인 레이 커즈와일(Ray K

혼동 행렬(Confusion matrix), ROC 곡선 [내부링크]

혼동행렬 모델의 성능을 평가할 때 사용되는 지표로, 예측값이 실제 관측값을 얼마나 정확히 예측했는지 보여주는 행렬이다. 정확도 Accuracy (ACC)   예측이 현실에 부합할 확률이다. 예측 결과 전체를 모두 모아서 분모에 넣고, 참 긍정이든 참 부정이든 제대로 예측하는 데 성공한 빈도가 전체 중의 얼마를 차지하는지 0~1 사잇값으로 살펴본다. 정확도가 높다는 것은 곧 예측이 제대로 적중한 경우가 많다는 의미가 되며, 정확도 높은 예측 알고리즘은 활용 가능성이 크다고 인정된다. 한편 정확도를 뒤집어서 1-Accuracy 계산을 하면 전체 예측 중 헛다리를 짚은 예측의 비율을 보겠다는 것으로, 전체 중의 거짓 긍정 및 거짓 부정을 계산하는 이 값은 오류율(Error rate)이라고도 불린다. 정밀도 = 적합률 Precision (P) / PPV(Positive Predictive Value) 예측 결과가 긍정적일 때 현실도 실제로 긍정일 확률이다. 여기서는 예측 결과가 긍정적인 경

기계어와 프로그래밍 언어, 프로그래밍 언어 랭킹 [내부링크]

기계어와 프로그래밍 언어 기계어는 0과 1을 사용하여 코딩 명령어를 입력하는 방법이고 프로그래밍 언어는 우리가 주로 사용하는 영어 또는 수식을 입력하면 이를 편집하는 컴파일러(Compiler)를 통해 0과 1로 편집하여 컴퓨터가 이해하게 하는 언어이다. 프로그래밍 언어 랭킹

딥러닝 돌리기 위한 노트북 최소 성능, 코딩 개발 도구들 [내부링크]

Deep Learning을 돌리기 위한 노트북 최소 성능: 요즘은 데스크탑보다 이동성이 좋은 노트북이 인기가 좋으며, 노트북으로도 웬만한 딥러닝을 다룰 수 있다. 다만 최소한의 성능을 갖춘 노트북이 있어야 한다. 아래는 그 성능 규격을 예시로 들어 본다. Display 크기 : 코딩을 하기 위해서는 최소 15인치하고 집에서 작업할 시는 일반 LED 모니터와 연결하면 더 좋겠다. RAM : 최소 8기가 이상이고 16기가 추천한다. CPU : 최소 intel i5 이상이고 i7 추천, Clockspeed도 2.8GHz, 64 Bit (32 Bit는 무리이다.) GPU : GeForce GTX 1060 이상 추천한다. 코딩하기 위한 개발 도구 먼저 IDE라는 통합개발환경이 있다. 위키백과의 정의에 의하면, 통합개발환경(統合開發環境, Integrated Development Environment, IDE)은 코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그

코딩에서의 변수 정의와 변수의 종류 [내부링크]

변수 : 수학에서의 변수와 코딩에서의 변수는 약간 다른 의미가 있다. 나무위키의 정의에 따르면, 수학에서의 변수란, 어떤 정해지지 않은 임의의 값을 표현하기 위해 사용된 ‘기호’이다. 보통 쉽게 설명하기 위해서 ‘변하는 숫자’라는 표현을 자주 쓰고는 한다. 반대말로는 상수가 있다. 코딩에서의 변수는 특정 값을 저장하는 메모리 공간을 뜻한다. 해당 메모리 공간에 저장되는 값은 정수형(integer(int)), 실수형(float, double), 문자(char) 및 문자열(String) 등 여러 가지 형식이 있으며 이를 이용하여 프로그래밍한다. 코딩에서의 변수의 종류는 크게 네 가지로 분류된다.

변수의 Data Type(자료형 또는 타입) [내부링크]

변수의 Data를 묶어서 사용하는 자료형의 경우는 크게 4가지 종류가 있다. 문자열(string), 리스트(list), 튜플(tuple), 딕셔너리(dictionary)가 있으며, 각 자료의 순서를 표현할 때는 [ ] 대괄호를 사용한다. 이때 주의할 점은 자료의 순서는 1, 2, 3 순이 아니라 0, 1, 2, 순으로 시작된다. 즉 [0] 은 제일 첫 자료를 뜻한다. 문자열(string)은 문자열 = “Hello world”나 “안녕하세요”로 표현되고, “안녕하세요” 문자열[0]은 ‘안’이 된다. 리스트(list)는 아파트 동의 호수[101, 102, 103]나 학생 이름[‘성은’, ‘상원’, ‘철수’] 등 숫자나 문자들의 묶음으로 사용할 수 있고, 이때는 [ ] 대괄호로 표현한다. 리스트는 추가, 삭제 등 수정이 가능하고, 숫자와 문자를 혼용해서 사용해도 된다. 현대A동= [1001, 1002, 1003, 1004] 현대초6학년4반학생이름 = [‘성은’, ‘상원’, ‘철수’, ‘동

코딩에서의 함수 [내부링크]

함수 : 앞에서 살펴본 변수의 정의와 같이 함수도 수학에서의 함수와 코딩에서의 함수는 약간 다른 의미가 있다. 위키백과의 정의에 따르면, 수학에서 함수(函數, 영어: function) 또는 사상(寫像, 영어: map, mapping)은 어떤 집합의 각 원소를 다른 집합의 유일한 원소에 대응시키는 이항관계다. 즉, 한 변수의 값에 따라 정해지는 다른 변수의 값을 먼저 주어지는 값에 상대하여 일컫는 말이다. 예를 들면, 집합 X의 원소 x 한 개에 집합 Y의 원소 y 한 개가 대응하는 관계를 의미한다. 거꾸로 y 한 개가 x 여러 개에 대응하는 관계도 함수라고 한다. 코딩에서의 함수(함수(function), 서브루틴(subroutine), 루틴(routine), 메서드(method), 프로시저(procedure)로 통칭)는 소프트웨어에서 특정 동작을 수행하는 일정 코드 부분을 의미한다. 함수는 믹스기로 이해하면 된다. INPUT에 과일들을 넣으면 함수를 통해 과일 주스가 나오는 격이다.

객체지향 프로그래밍, 클래스, 인스턴스, 객체, 메서드 [내부링크]

객체지향 프로그래밍(object-oriented programming) : 위키백과의 정의에 의하면, 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. 객체 지향 프로그래밍의 특징은 기본적으로 자료 추상화, 상속, 다형 개념, 동적 바인딩 등이 있으며 추가로 다중 상속 등의 특징이 존재한다. 클래스(class): 같은 종류(또는 문제 해결을 위한)의 집단에 속하는 속성(attribute)과 행위(behavior)를 정의한 것으로 객체지향 프로그램의 기본적인 사용자 정의 데이터형(user defined data type)이라고 할 수 있다. 속성과 행위로 구성된 일종의 설계도이다. 인스턴스(instance): 해당 클래스의 구조로 컴퓨터 저장공간에서 할당된 실체를 의미한다. 객체(object): 클래스의 인스턴스(실제로

조건문과 반복문 [내부링크]

조건문과 반복문: 컴퓨터는 단순 계산을 엄청 빠르게 함으로써 인간의 연산속도보다 훨씬 빨라졌다. 이런 반복 연산을 가능 게 해준 게 제어문이고, 제어문에는 if로 대표되는 조건문과 for로 대표되는 반복문이 있다. 조건문 If 문 : 조건문이 참이면, 그다음 행동을 실행하고, 거짓이면 else 다음 행동을 실행한다. a = 1 b = 10 if a < 2: print(a) else: print(b) elif문 : if 조건문이 참이면, 그다음 행동을 실행하고, (그런데 if 조건문이 참이 아니면) elif 조건문이 참이면, 그다음 행동을 실행하고, if와 elif 둘 다 아니면 else 다음 행동을 실행한다. a = 1; b = 10; c = 100 if a < 1: print(a) elif b == 10 print(b) else: print(c) 반복문: 어떤 조건을 만족하는 동안에는 계속 반복하여 행동 실행이며, while 문과 for 문이 대표적이다. while문: 조건이 참이

머신러닝 국가대표급 11개 알고리즘 [내부링크]

가장 많이 사용되고 있는 국가대표급 Top 11 Machine Learning Algorithms Linear regression Logistic regression Decision tree Random forest & Ensemble SVM algorithm Naive Bayes algorithm KNN algorithm K-means Dimensional reduction algorithms Gradient boosting algorithm XGboost

선형 회귀(Linear regression) [내부링크]

선형 회귀는 종속변수 y와 한 개 이상의 독립(또는 설명) 변수 X와의 선형 상관 관계를 분석하는 기법이다. 한 개의 설명변수에 기반하였으면 단순 선형 회귀, 둘 이상의 설명변수에 기반하였으면 다중 선형 회귀라고 한다. 선형 회귀는 확보한 데이터를 이용해서, 독립 변수와 종속변수 사이의 관계를 선형식으로 추정한다. 이때 추정(Estimate)하는 이유는 우리가 데이터 분석을 진행할 때 전체 데이터(모집단) 없어 샘플(표본)을 사용하기 때문이다. 단순선형회귀에 사용되는 직선의 방정식은 y = x * 기울기 + y 절편이다. 이 방정식으로 x의 독립 변수 데이터를 활용하여 y 값을 예측할 수 있게 된다. 선형 회귀라 선형 직선이 추정되는데, 이때 관측값과 추정된 직선 사이의 오차(Error)들의 합이 가장 작은 추정 직선이 가장 적합한 직선이 된다. 이때 사용되는 방법이 최소제곱법(Method of Least Square)이다. 최소제곱 법은 관측값과 예측값 사이의 오차 제곱 합이 최소

로지스틱 회귀(Logistic regression) [내부링크]

로지스틱 회귀는 일반적이고 효과적인 분류 알고리즘이다. 이름에 회귀라는 단어가 종종 회귀분석에만 사용될 것처럼 헷갈리곤 하지만 범주형 자료를 분류하는데 매우 강력한 알고리즘이다. 로지스틱 회귀의 목적은 일반적인 회귀분석의 목표와 같이 종속변수와 독립 변수 간의 관계를 구체적인 함수로 나타내어 향후 예측 모델에 사용하는 것이다. 이는 독립 변수의 선형 결합으로 종속변수를 설명한다는 관점에서는 선형 회귀 분석과 유사하다. 하지만 로지스틱 회귀는 선형 회귀 분석과는 다르게 종속변수가 범주형 데이터를 대상으로 하며 입력 데이터를 줬을 때 해당 데이터의 결과가 특정 분류로 나뉘기 때문에 일종의 분류 (Classification) 기법으로도 볼 수 있다. 흔히 로지스틱 회귀는 종속변수가 이항형 문제(즉, 유효한 범주의 개수가 두 개인 경우)를 지칭할 때 사용된다. 이외에, 두 개 이상의 범주를 가지는 문제가 대상인 경우엔 다항 로지스틱 회귀 (Multinomial logistic regress

의사결정 트리(Decision tree) [내부링크]

의사결정 트리는 트리(Tree) 기반의 분류 알고리즘으로 직관적으로 이해하기 쉽다. 의사결정트리는 머신러닝알고리즘 중 하나로, 스무고개의 ‘예, 아니요’와 같이 플로차트 같은 구조를 가진다. 기본적으로 의사결정트리는 데이터에 있는 규칙을 통해 데이터 세트를 분류/예측하는 지도학습모델이다. 규칙 노드(Decision Node)에서 규칙에 따라 분할되며 각각의 서브 트리(Sub Tree)를 생성한다. 계속되는 규칙에 따라 노드가 분할되며 최종적으로 리프 노드(Leaf Node, 더는 줄기가 없는 노드)에서는 클래스값을 가지게 된다. 데이터를 줬을 때 각 노드의 단계를 거치며 분류를 하게 되며 마지막 노드에 도달했을 때 그 노드의 값으로 데이터의 클래스를 예측하는 방식이다. 의사결정 트리 학습법(decision tree learning)은 어떤 항목에 대한 관측값과 목푯값을 연결해 주는 예측 모델로서 결정 트리를 사용한다. 이는 통계학과 데이터 마이닝, 기계 학습에서 사용하는 예측 모델링

랜덤 포레스트(Random forest) algorithm [내부링크]

랜덤 포레스트(Random forest) algorithm 우리가 어떤 결정을 하려면 많은 일련의 질문을 한다. 만약 오늘 점심 식사에 대한 의사결정을 한다고 보자. 점심으로 뭘 먹고 싶은지 결정해야 하는데, 집에서 요리해서 먹을 수도 있고 아니면 배달의민족으로 배달시켜 먹을 수도 있다. 여기서 또 배달시켜 먹기로 한다면 배달의민족 메뉴 중 어떤 것을 시킬지 일련의 결정을 하게 된다. 우리는 모두 이런 의사 결정 과정을 매일 여러 번 사용한다. 머신러닝에서는 이런 과정을 앞에서 살펴본 의사결정트리라고 부른다. 우리는 다른 노드로 분기되는 노드에서 시작하여, 리프(Leaf, 의사결정트리의 끝 또는 더는 분류가 없는 노드)에 도달할 때까지 이 과정을 반복한다. 랜덤 포레스트 알고리즘은 다양한 의사결정트리로 구성되며, 각각은 노드와 리프로 이어지는 서로 다른 데이터를 사용한다. 이러한 모든 의사결정트리의 평균을 나타내는 답을 찾기 위해 여러 의사결정트리의 결정을 병합한다. 위의 예에서는

앙상블 학습(Ensemble Learning) [내부링크]

앙상블 학습(Ensemble Learning) 앙상블 학습은 여러 개의 분류기(Classifier)에서 각각 예측을 수행하고 그 예측을 결합해서 더 나은 예측 결과를 도출해 내는 방법이다. 머리를 맞대고 문제를 풀면 쉽게 정답에 도달할 수 있다는 생각에서 비롯되었으며 대부분의 정형 데이터를 분류해 낼 때 뛰어난 효과를 나타낸다. 앙상블 학습은 보팅(Voting), 배깅(Bagging), 부스팅(Boosting), 스태킹(Stacking) 등 다양한 방식이 있다. 보팅은 하나의 데이터 세트에서 다양한 알고리즘의 분류기를 사용해 예측한 값을 결합하는 방식이다. 배깅은 Bootstrap(샘플링) aggregating (합산)의 줄임말이다. 한 가지의 알고리즘 분류기를 통해 다양한 데이터 세트 각각을 학습시켜 예측한 값을 결합한다. 부스팅은 여러 개의 분류기를 학습하면서 앞서 예측을 진행한 분류기가 예측에 틀린 데이터에 대해 가중치(weight)를 부여하여 다음 분류기의 학습을 진행하는 방

SVM(서포트 벡터 머신, Support Vector Machine) algorithm [내부링크]

SVM(서포트 벡터 머신, Support Vector Machine) algorithm 서포트 벡터 머신은 딥러닝이 대두하기 전까지 가장 많이 활용되던 머신러닝알고리즘이다. 클래스를 분류할 수 있는 다양한 경계선이 존재하는데 그중 최적의 라인을 찾아내는 원리이다. 명확하게 분류할 수 있는 데이터 집단에서 뛰어난 성능을 나타내며 고차원 공간에서도 효과적으로 사용이 가능하여 인기가 높았다. 2차원의 공간에서는 경계를 라인으로 그려낼 수 있지만, 다차원이 되면 경계를 평면으로 나타내야 하고 이를 초평면(Hyperplane)이라고 부른다. 각각의 데이터 그룹에서 초평면이랑 가장 인접한 데이터를 서포트 벡터(Support vector)라고 하며 초평면과 서포트 벡터 간의 거리인 마진(Margin) 값을 최대로 만들어 냈을 때 최적의 분류 조건을 만족한다. 두 클래스의 데이터를 분리하기 위해서는 선택할 수 있는 많은 초평면들이 있다. 여기서 데이터들 사이의 최대 거리를 갖는 평면을 찾으면 된다

나이브 베이즈 분류기(Naive Bayes algorithm) [내부링크]

나이브 베이즈 분류기(Naive Bayes algorithm) 나이브 베이즈 분류기는 베이즈정리를 사용하여 데이터를 분류하는 머신러닝기법이다. 베이즈정리는 18세기에 확률과 이항 분포를 연구한 토마스 베이스 목사의 이름을 따서 명명되었다. 주로 날씨 예측, 이메일 스팸 탐지, 얼굴인식에 활용되고 있다. 나이브(Naïve, 순진한)를 붙인 이유는 각각 데이터들의 특징을 서로 완전히 독립적인 것으로 가정하기 때문이다. 예를 들어, 특정 과일을 사과로 분류할 수 있게 하는 특성들(둥글다, 빨갛다, 지름 10cm)은 나이브 베이즈 분류기에서 특성들 사이에서 발생할 수 있는 연관성이 없음을 가정하고 각각의 특성들이 특정 과일이 사과일 확률에 독립적으로 이바지한 것으로 간주한다. (위키백과) 나이브 베이즈 분류는 Label(정답)이 있는 지도학습의 일종이다. 특성(Feature)에 따라 Label(정답)을 분류하는데, 베이즈정리를 사용하는 것이 특징입니다. 베이즈정리(Bayes’ theorem

KNN(K-nearest neighbors) algorithm [내부링크]

KNN(K-nearest neighbors) algorithm K-최소 근접(K-Nearest Neighbor) 알고리즘 즉 KNN 알고리즘은 데이터 간의 유사한 특징을 기준으로 분류하는 알고리즘이다. 이 알고리즘은 기계 학습에 사용되는 간단한 기술 중 하나이다. 사용이 간편하고 계산 시간이 짧아 업계에서, 많은 이들이 선호하는 방식이다. KNN은 가장 유사한 점을 기준으로 데이터점을 분류하는 모델입니다. 주어진 데이터의 주변 이웃 데이터들의 특징을 파악하고 가장 유사한 데이터 그룹에 포함되도록 하는 방식이다. 다른 거의 모든 것들과 마찬가지로, KNN도 수학 이론들로 작동된다. KNN을 구현할 때 첫 번째 단계는 데이터점을 특징 벡터 또는 수학적 값으로 변환하는 것이다. 이 알고리즘은 이러한 점들의 수학적 값들 사이의 거리를 찾는 것으로 작동한다. 이 거리를 구하는 가장 일반적인 방법은 유클리드 거리(Euclidean distance) 이다. 유사도를 가진 데이터를 파악할 수 있어

K-means Clustering Algorithm(K-평균) [내부링크]

K-means Clustering Algorithm 머신러닝에서 비지도 학습의 기법의 하나며, 데이터 세트에서 서로 유사한 관찰치 들을 그룹으로 묶어 분류하여 몇 가지의 군집(cluster)을 찾아내는 것 기법이다. 어떤 데이터 세트가 있고 k개의 클러스터로 분류하겠다고 가정하면, 그 데이터 세트에는 k개의 중심(centroid)이 존재한다. 각 데이터는 유클리드 거리를 기반으로 가까운 중심에 할당되고, 같은 중심에 모인 데이터 그룹이 하나의 클러스터가 된다. 그런 다음 시간이 지남에 따라 더 정확한 분류를 수행하기 위해 이 기술을 반복한다. 이때 Mean(평균)은 각 클러스터의 중심과 주변에 모인 데이터들의 평균 거리가 된다. 설명을 다시 주요 3단계로 나눠 살펴보면, 1단계 : 데이터를 이해하고 가장 의미 있는 k 값을 선택 2단계 : 둘째, 각 데이터를 인근 군집에 할당하여 k개의 군집을 생성 3단계 : 수렴 기준에 도달할 때까지 이전 단계를 반복해야 한다. 중심 값이 더는 변

차원축소알고리즘(Dimensionality reduction algorithms) [내부링크]

차원축소알고리즘(Dimensionality reduction algorithms) 특성(feature)은 얼핏 보면 데이터의 다양한 측면을 보여주기 때문에 많을수록 좋은 것 같지만, 학습이 느려질 수 있고, 좋은 해를 찾는 데 방해가 되기도 한다. 특성의 수가 증가하는 것은 데이터의 수가 증가하는 것이 아닌 데이터를 표현하는 공간(차원)이 커지는 것으로도 말할 수 있다. 특성의 수가 증가할수록, 데이터의 차원 또한 커지기 때문에 이를 채우기 위한 데이터의 수도 증가하게 된다. 데이터의 크기는 같으나 특성이 많아지게 되면 적은 데이터로 공간을 표현해야 해서 과적합(Overfitting)이 발생할 수도 있다. 이러한 문제를 차원의 저주라고 한다. 이외에도 많은 특성을 가지게 되면 특성끼리 상관관계가 높은 다중 공산성의 문제가 있을 수 있고 알고리즘의 복잡성을 증가시켜 오히려 예측 성능을 낮아지게 된다. 이런 문제점들을 해결하기 위해 차원의 수를 줄이는 방법인 차원 축소 방법이 사용되고

경사 부스팅 알고리즘(Gradient boosting algorithm) [내부링크]

경사 부스팅 알고리즘(Gradient boosting algorithm) 부스팅(Boosting)이란 약한 분류기를 결합하여 강한 분류기를 만드는 과정입니다. 각각의 분류기가 약한 정확도를 보이기 때문에 이들 각 분류기를 최종적으로 결합하여 더 높은 정확도를 만드는 방법이다. 경사부스팅은 가중치 업데이트를 경사하강법(Gradient Descent)을 이용하여 최적화된 결과를 얻는 알고리즘으로 예측 성능이 높지만, 탐욕알고리즘(Greedy Algorithm)으로 과적합이 될 수 있고, 시간이 오래 걸리는 약점이 있다. 경사 부스팅은 회귀와 분류에 모두 사용할 수 있는 모델이다.

XGBoost [내부링크]

XGBoost 최근 캐글(Kaggle) 경진대회에서 좋은 성적을 거두고 있는 게 XGBoost이다. XGBoost는 Extreme Gradient Boosting의 약자이며, 글자에 있듯이 Gradient Boosting의 약점을 개선해서 나온 후속 버전이다. 경사부스팅은 병렬 학습이 가능토록 구현한 알고리즘이다. 회귀, 분류 모두에 적용되며, 성능과 자원 효율이 높아 최근 인기 있게 사용되는 알고리즘이다. 경사부스팅과 달리 과적합 우려도 없고 뛰어난 예측 성능을 보여주고 있다.

미적분 [내부링크]

미적분 미분(微分, Derivative) 또는 도함수(導函數)는 어떤 함수의 정의역 속 각 점에서 함숫값의 변화량과 독립 변숫값의 변화량 비의 극한 혹은 극한들로 치역이 구성되는 새로운 함수다 (위키백과정의). 좀 어려운데, 그냥 곡선을 아주 작은 범위로 잘게 잘라서 생각해서 순간의 변화를 찾는 방법으로 어떤 함수가 언제, 어떻게 변하는가를 알 수 있게 해준다는 정도로 생각하고, 곡선의 기울기로 이해하면 되겠다. 적분(積分, Integral)은 미분과 반대 관계에 있는 수학이며, 곡선으로 둘러싸여 있는 영역의 넓이를 구하는 방법이다. 미분과 반대 개념으로 접선의 기울기에서 적분하면 원래의 곡선으로 돌아가는 데 이때 사용되는 함수가 원시함수이다. 극댓값 또는 극대치(極大置, Local Maximum)와 극솟값 또는 극소치(極小置, Local Minimum)를 통틀어 극값또는극치(極置, Local Extremum)라고 하며, 극대점(極大點, Local Maximum Point)과 극소점

벡터와 행렬 [내부링크]

벡터와 행렬 벡터(Vector)는 크기(Magnitude)와 방향(Direction)을 모두 가진 수량(Quantity)이다. 크기만을 가진 양을 스칼라(Scalar)라 하는데, 스칼라를 방향과 결합하면 벡터가 되는 것이다. 벡터의 내적(內積, Inner product, Dot product, 안쪽 곱)은 두 벡터의 각 성분끼리의 곱의 합이다. 내적도 더하기, 곱하기처럼 연산 중 하나이다. 내적은 벡터와 벡터의 연산인데 결과가 스칼라값으로 나온다(대개, 벡터+벡터=벡터이거나, 스칼라+스칼라=스칼라 같은 형태인 데 반해 약간 특이함). 두 벡터 사이의 거리를 측정하는 데 주로 활용된다. 벡터 간 유클리드 거리는 두 벡터 사이의 직선거리다. 행렬(行列, Matrix)은 1개 이상의 수나 식을 직사각형의 배열로 나열한 것으로 가로줄을 행(行, row), 세로줄을 열(列, column)이라고 부른다. 행렬연산(行列演算, Matrix Operation)은 두 행렬의 덧셈, 뺄셈, 곱셈, 나눗

확률, 순열, 조합, 통계 [내부링크]

확률(確率, Probability)은 어떤 일이 일어날 가능성을 측량하는 단위로 비율이나 빈도로 나타낸다. 사건이 일어날 경우의 수를 모든 경우의 수로 나누어서 구한 값이 된다. 순열(順列, Permutation)은 n개의 원소에서 r개를 중복 없이 순서에 상관있게 선택하는 혹은 나열하는 것이다. 사건이 일어날 경우의 수들을 순서를 붙여서 배열한 것이 된다. (예; 10명에서 5명을 선택해 1열로 정렬하는 것) 조합(組合, Combination)은 서로 다른 n개의 원소를 가지는 어떤 집합에서 순서에 상관없이 r개의 원소를 선택하는 것이며, 이는 n개의 원소로 이루어진 집합에서 r개의 원소로 이루어진 부분집합을 만드는 것과 같다. 사건이 일어날 경우의 수들을 순서에 상관없이 선택하는 것이 된다. (예; 10명에서 5명을 선택해 5명의 팀을 짜는 것) 통계(統計, Statistics)는 관심이 있는 대상에 대해 관측, 조사, 실험 등을 통해 얻은 자료나 데이터로 정리하는 것이며, 한자

산포도, 분산, 표준편차, 확률변수, 확률분포 [내부링크]

산포도 또는 상관도 : 두 변수 간의 관계를 쉽게 나타낸 표 분산과 표준편차 편차 : 각 값(빨간색 점) - 평균값(검정 선) 편차제곱합 : 각 편차 제곱하고 그 편차제곱한 값들을 더한 값 분산 : 편차 제곱 합에서 전체 데이터 수(N개)로 나눠 준 값 그리고 이때 표준편차는 사용하는 단위(cm 또는 kg 등)에 따라 값이 달라지기 때문에 이를 표준화할 필요가 있고, 평균은 0 그리고 표준편차는 1인 값들의 분포로 나타낸 것이 표준정규분포이다. 즉 분산은 평균값보다 위에 있든(편차가 +) 아래에 있든(편차가 -) 제곱한 값들이라 양의 값을 가지고 평균에서 떨어져 있는 정도를 알기 쉽게 표현해 주는 수치이다. 하지만 분산의 수치만 가지고는 그 수치가 큰지 작은지 알 수가 없어 분산에 루트 √ 한 표준편차을 사용 확률변수와 확률분포 : 통계학과 확률론을 이어주는 개념으로 확률변수와 확률분포를 활용한다. 확률변수 동전을 던져 앞면이 나오면 X1이라 하고 뒷면이 나오면 X2라고 할 때, X

추정과 검정 [내부링크]

추정과 검정 추정 표본을 통해 모집단의 특징을 유추해 내는 것이다. [예제] 좌측과 같이 신뢰도 95%인 모평균(µ)의 신뢰구간이고, 대한민국 남성의 키의 평균을 1,000명의 표본으로 구해보니 이들 키의 표본평균값이 170cm이고, 각 편차의 제곱합이 25,000cm이라면, 분산은 25000/1000= 25, 표준편차는 분산을 루트 시키면 5가 된다. 이를 좌측에 대입하면 170-(1.96x5) = 160.2cm에서 170+(1.96x5)=179.8cm 사이 신뢰구간 안에 모평균을 포함한다는 뜻이다. 이때 신뢰구간을 늘릴수록 더 많은 값이 들어가게 된다. 여기서 주의할 점은 95% 확률로 모평균이 위 구간에 들어간다는 뜻이 아니라, 1,000명의 표본을 뽑는 조사를 여러 번 했을 때, 그 조사들의 95%가 모평균을 포함한다는 뜻이다. 검정 확률에 대한 어떤 주장에 대해 통계적인 기법을 활용하여 판단해 보는 것으로 이때 가설을 먼저 세우고 이를 판단하게 되는데, 가설수립에는 두 가지

회귀분석, 결정계수, 베이즈정리 [내부링크]

회귀분석 : 변수 간의 관계를 분석 단순회귀분석 : 2변수 X와 Y의 관계를 1차 식으로 나타냄. 회귀방정식 y = a + bx (x는 설명변수, y는 목적변수, a는 절편, b는 기울기이며 회귀계수) 결정계수 : 상기 회귀선으로 데이터값들을 대표하는 선형 직선을 구하였지만, 그 직선으로부터 떨어진 정도를 표현하기 위해 결정계수 R2(Coefficient of determination)를 사용한다. R2= 1은 데이터가 직선에 모두 붙어 있다는 뜻이고, R2= 0은 데이터들이 직선과 무의미하게 분포되어 있다는 의미이다. 주성분 분석 : 변수가 너무 많아 숲만 보면 전체적인 산의 특성을 보지 못하는 경우가 있다. 이를 해결하고자 변수를 1개 또는 몇 개 대표선수로 압축하여 그들의 성격을 통해 산의 특성을 보는 분석을 시도함. 인자 분석 : 여러 변수 중에 어떤 결괏값을 나오게 하는 숨어 있는 원인을 조사하는 분석 방법에 많이 활용된다. 예로 들면, 대통령 당선이라는 결괏값에 영향을 미

퍼셉트론 [내부링크]

이제 단일 레이어 인공신경망인 퍼셉트론에 대해 알아보자. 위키백과에 의하면, 퍼셉트론(Perceptron)은 인공신경망의 한 종류로서, 1957년에 코넬 항공 연구소(Cornell Aeronautical Lab)의 프랑크 로젠블라트(Frank Rosenblatt)에 의해 고안되었다. 수용층, 연합층, 반응층의 세 부분으로 구성되어 있다. 수용층에서는 외부 자극을 받아들이고, 연합층은 수용층의 가중 압력을 받아 반응층으로 전달하는 기능을 담당하며, 반응층은 최종 출력을 내보내는 기능을 한다. 퍼셉트론은 연결 강도를 조정하기 위하여 반복적 학습 방법을 사용한다. 퍼셉트론은 두 개의 노드가 있을 경우, 그 두 개의 노드가 각각 들어가야 하는 위치인 입력치와 그를 가중하는 가중치, 이를 통해 계산하여 나온 결과인 출력값으로 구성되어 있다. 가중치와 입력치를 곱한 것을 모두 합한 값이 활성함수에 의해 판단되는데, 그 값이 임계치(보통 0)보다 크면 뉴런(혹은 내부 함수)이 활성화되고 결괏값으

오류 역전파 [내부링크]

오류 역전파(Backpropagation)는 위키백과의 정의를 먼저 살펴보면, 역전파(逆傳播), 오차 역전파법(영어: Backpropagation 백프로퍼게이션) 또는 오류 역전파알고리즘은 다층 퍼셉트론 학습에 사용되는 통계적 기법을 의미한다. 기계 학습에서 사용되는 학습 구조로 다층 퍼셉트론이 있다. 일반적인 다층 퍼셉트론의 형태는 입력층- 은닉층- 은닉층- ... - 출력층으로 구성되며, 각 층은 서로 교차하는 가중치 값으로 연결되어 있다. 출력층에서 제시한 값이 실제 원하는 값에 가까워지도록 학습하기 위해 통계적 방법에 따른 오차 역전법을 사용한다. 오차 역전법은 동일 입력층에 대해 원하는 값이 출력되도록 개개의 가중치를 조정하는 방법으로 사용되며, 속도는 느리지만 안정적인 결과를 얻을 수 있는 장점이 있어 기계 학습에 널리 사용되고 있다. 쉽게 다시 설명하면, 신경망에는 입력과 출력이 있고, 그 출력과 답과의 오차를 최대한 작아지도록 파라미터들을 조정하면서 학습이 진행된다.

과적합 예방 [내부링크]

데이터가 축적될수록 개별 데이터값들에 너무 치중하지 못하는 과적합 방지 기법이 필요하다. 과적합(Overfitting)은 일반적으로 데이터에는 일부 편중된 데이터들도 포함하고 있는데 이들 데이터까지 세세하게 고려하여 분석하면 왜곡되어 올바른 기준을 구축하지 못하게 되는데 이를 과적합 하였다고 부르고, 이를 예방하는 방법으로는 정규화(Regularization), 표준화(Normalization)와 드롭아웃(Drop-out) 기법들이 있다. 정규화는 데이터에 편향이 발생하는 것을 억제하기 위한 기술이며, 입력변수 X를 최솟값은 0, 최댓값은 1이 되도록 1차 함수 통해 변환하는 기법이다. 표준화는 입력변수 X를 평균이 0, 분산이 1인 정규분포가 되도록 1차 함수 통해 변환한다. 드롭아웃(Drop-out)은 출력층 이외의 뉴런을 일정한 확률로 무작위 제거하는 방법으로, 이렇게 제거되는 뉴런은 가중치와 편향을 수정할 때마다 또 바뀐다. 이는 구현이 쉽고 과적합 방지에 효과가 크기 때문에

합성곱 신경망(CNN, Convolutional Neural Network) [내부링크]

CNN은 얼굴, 사물, 문자 등 이미지 분석에 일반적으로 사용하는 방법으로, 합성곱을 이용해 가중치 수를 줄여 연산량을 간단히 하면서 이미지의 특장점을 효율적으로 처리해 이미지를 분석한다. CNN은 이미지를 분류할 때 사람이 대상을 추상화하는 과정을 본떠 만든 것으로, 컨볼루션 과정과 풀링(Pooling)으로 나눠 컴퓨터가 학습한다. 컨볼루션 과정은, 이미지에는 기본적으로 가로선, 세로선, 곡선, 색깔, 명암 등과 같이 수많은 특징이 있는데, 이런 특징을 필터로 하나씩 구분해내는 과정이다. 이미지의 특징은 수없이 많아서 걸러낸 데이터만 모아도 엄청나게 크다. 그래서 이미지의 대표 특징만 골라서 가져와 크기를 줄이게 되고 이를 ‘풀링’이라고 한다. CNN은 1988년 얀 르쿤(Yann LeCun)의 논문 <손으로 작성된 우편번호 인식에 적용된 역전파>에서 처음 소개되었으며, 제프리 힌턴 교수의 컴퓨터 비전 딥 러닝 모델인 알렉스넷(AlexNet) 등으로 더욱 발전했다. CNN, R(R

순환 신경망(RNN, Recurrent Neural Network) [내부링크]

RNN은 시계열 데이터를 다루는 데 적합한 신경망으로, 변화하는 데이터의 추세, 주기, 시간을 뛰어넘는 관련성 등을 포착해 나가는 기법이다. 이때 은닉층의 출력이 다시 은닉층의 입력으로 순환하는 구조를 가져 재귀(Recurrence)라고 불린다. RNN은 일반적인 인공 신경망과 달리 순서가 있는 정보를 입력 데이터로 활용하는 신경망을 의미한다. 즉 일반적인 신경망의 경우 입출력 정보가 서로 독립적이라고 가정하는데, 이는 실제로 많은 현실 문제를 정확하게 모델링하는 데 뚜렷한 한계가 있다. 예를 들어 문장을 입력 데이터로 받아 다음에 출현할 단어를 예측하는 경우, 데이터 간 종속성을 고려하지 않은 일반 신경망을 활용하는 것보다 시간의 흐름을 고려한 RNN을 활용하는 것이 효과적이다. RNN은 일반적인 인공 신경망과 달리 재귀라는 용어가 그 의미를 내포하듯, 이전에 입력한 데이터와 지금 입력한 데이터를 동시에 고려해 출력값을 결정한다. 즉 RNN은 임의의 시점 t까지 계산된 결과를 기억

오토 인코더(AE, Auto Encoder)와 변이형 오토인코더(VAE, Variational Auto Encoder) [내부링크]

레이블(Label, 예측하고자 하는 대상 항목으로 선형회귀의 y값을 뜻한다. 우리말의 정답으로 이해하면 쉽다)이 없는 데이터 특성을 분석하는 비지도 학습의 대표적인 딥 러닝 모델이며, 오토 인코더는 인코더(Encoder, 부호화로 데이터의 양을 줄이기 위해 데이터를 코드화하고 압축하는 것)와 디코더(Decoder, 복호화로 부호화된 정보를 부호화되기 전으로 되돌리는 처리)로 구성되어 있다. 입력을 어떤 이미지라고 하면, 출력은 입력 이미지를 재현한 이미지다. 입력과 출력의 크기는 같고, 은닉층의 크기는 그보다 작다. 이 때문에 인코더는 데이터를 압축하고, 디코더는 압축한 데이터를 원래 데이터로 복원해 나간다. 이때 인코더에서 데이터를 압축해서 사용하는 이유는 입력을 더 적은 차원으로 압축하면 입력의 두드러진 특징을 학습할 수 있기 때문이다. 머신 러닝의 주성분 분석(PCA, Principal Component Analysis)이 확장된 개념이다. 그래서 오토 인코더는 CNN 등과 달

생성적 적대 신경망(GAN, Generative Adversarial Network) [내부링크]

GAN은 비지도 학습의 일종이며, 생성자(Generator)와 판별자(Discriminator)라는 신경망 2개가 서로 경쟁하면서 학습하는 생성 모델의 일종이다. GAN은 이미지 생성에 자주 이용되며, 생성자는 가짜 데이터를 만드는 모델로 판별자를 속이는 게 주목적이다. 랜덤 노이즈를 입력해 가짜 데이터를 만들어 판별자가 구별하지 못하도록 학습해 나간다. 반면에 판별자는 생성자가 만든 가짜 이미지를 제대로 식별하는 게 주목적이다. 원본 데이터와 생성자가 만든 데이터 모두를 훈련 데이터로 두고 아주 작은 차이도 식별하도록 훈련해 나간다. GAN은 세계 주요 인공지능 학회 중 하나인 2014년 NIPS(Neural Information Processing Systems)에서 이안 굿펠로(Ian Goodfellow)가 제시한 모형으로, 인공지능 분야의 대가 중 한 명인 얀 르쿤 교수가 극찬한 방법론이다. 일반적으로 GAN은 경찰과 지폐 위조범의 예를 통해 설명된다. [경찰과 지폐 위조범의

심층 Q-네트워크(Deep Q-Networks, DQN) [내부링크]

DQN은 강화 학습을 위한 가장 최신 딥 러닝 모델로 구글 딥마인드(Google DeepMind)에서 개발한 알고리즘으로, 2015년 2월 <네이처(Nature)>에 소개되었다. 강화 학습은 동물이 학습하는 방법을 모방한 인공지능 방법론이다. 동물 행동심리학에서 ‘스키너의 상자’로 알려진 실험이 모티브가 되었는데, 해당 실험은 상자 내부에 쥐와 누르면 먹이가 나오는 지렛대를 함께 두는 방식으로 진행된다. 처음에 무작위 행동을 하던 쥐는 지렛대를 누르면 먹이가 나오는 것을 확인한다. 시간이 지날수록 쥐는 더 높은 빈도수로 지렛대를 누르는데, 이렇게 어떠한 보상(먹이)이 행동(지렛대를 누르는 행위)을 ‘강화’하는 것을 관찰할 수 있다. 해당 실험과 매우 유사한 구조를 갖는 강화 학습은 행동 주체가 자기를 둘러싼 ‘환경’에서 ‘보상’을 받으면서 환경에 대해 배워나가는 인공지능 방법론이다. 2016년 이세돌 9단과의 대국에서 승리한 구글 딥마인드의 ‘알파고(AlphaGo)’가 대표 사례다.

심층 신뢰망(DBN, Deep Belief Network) [내부링크]

DBN은 2006년에 최초로 컨볼루션 연산을 사용하지 않고 심층 구조상에서 학습을 성공시킨 모델이다. DBN은 제한 볼츠만 머신(RBM, Restricted Boltzmann Machine)이라는 신경망 모델을 단위 블록으로 사용해 층을 쌓음으로써 깊은 신경망을 구성하는 딥 러닝 모델이다. 컨볼루션 신경망이 계산을 수행할 때 결정적인 계산을 수행하는 것과 달리 확률적으로 출력값을 계산한다. DBN은 비지도 방식으로 계층마다 학습을 진행하는데, 이때 각각의 계층은 보통 RBM의 형태를 띠고 있다. 제한 볼츠만 머신(RBM)의 구조는 단순하다. 관찰할 수 있는 가시층과 은닉층으로만 구성된다. 다만 같은 층 내부 노드 간의 연결은 없고 층과 층 사이와의 연결만 있다. 이런 점에서 제한적이라고 불린다. 역전파 신경망과 비슷하게 RBM도 입력 노드에 가중치를 곱한 다음 시그모이드(Sigmoid) 함수를 적용해 은닉층의 값을 구하는 방법은 비슷하다. 다만 확률적으로 샘플링해서 구한다. 역전파

은닉 마르코프 모델(Hidden Markov Model, HMM) [내부링크]

HMM은 통계적 마르코프 모형 중 하나로, 분석하고자 하는 시스템이 은닉된 상태와 관찰 가능한 결과로 구분되어 있다는 가정에서 출발한다. HMM은 러시아의 수학자 안드레이 마르코프(Andrey Markov)가 1900년대 처음 제안했으며 이후 1960년대 계산 과학과 통계학의 눈부신 발전을 토대로 추정값을 효과적으로 계산할 수 있는 알고리즘이 개발되면서 널리 활용되기 시작했다. HMM은 일반적인 마르코프 모형과는 달리 시스템의 상태가 은닉되어 있다는 가정에서 출발하는데, 이는 충분한 정보를 갖고 있지 못한 다양한 유형의 문제를 해결하는 데 유용하다. 예를 들면 우리에게 주어진 정보가 최근 10년간 우산의 소비 기록(관찰 가능한 값)만 있을 때, 이 정보를 토대로 같은 기간의 날씨(은닉된 상태)가 어땠는지 HMM을 통해 추정해볼 수 있다. 최근 들어 음성 합성, 유전자 예측, 다중 서열 정렬 등의 생물 정보학이나 금융 공학, 암호해독 분야로도 활용 영역이 확대되고 있다.

AI와 양자컴퓨터는 ‘적과 동침’ [내부링크]

2022년 5월 과학강연 배틀인 ‘사이언스슬램D(Science Slam D)’에서 박성수 ETRI 박사는 ‘양자컴퓨터라는 신상 장난감’이라는 주제로 강연했다. 그에 따르면 양자컴퓨터에 관한 연구는 약 50여 년 전인 1970년대부터 시작되었지만, 구현된 지는 20년밖에 되지 않았다. 상용화되고 있는 양자컴퓨터의 기술은 아직 장난감 수준이고 이것이 우리의 생활을 바꾸고 암호를 해독하려면 아직 시간이 필요하다는 것이 그의 설명이다. 양자컴퓨터는 이진법 신호로만 작동하는 디지털 컴퓨터와 달리, 0과 1이 중첩된 상태인 큐비트(Qubit) 단위로 정보를 다룬다. 0과 1로 정보를 나누어 처리하지 않고 한꺼번에 처리하기 때문에 훨씬 빠른 처리 속도를 보인다. 고전 컴퓨터로 백만 년이 걸리는 암호해독을 양자컴퓨터로는 1초면 가능하다. 하지만 실제로 양자컴퓨터가 이러한 암호해독 수준에 도달하기까지 걸리는 시간은 빠르면 2040년, 늦으면 2070년으로 추정하고 있다. 양자컴퓨터 기술은 여전히 많

AI가 낳은 합성 데이터 (Synthetic Data) [내부링크]

합성 데이터는 실제로 측정된 데이터(Real Data)를 생성하는 모형이 존재한다고 가정하고, 통계적 방법이나 기계학습 방법 등을 이용해 추정된 모형에서 새롭게 생성한 모의 데이터 (Simulated Data)를 말합니다. 합성 데이터는 인공적일 수도 있지만, 수학적으로나 통계적으로 실제 데이터를 반영하기도 하는데, 연구 결과에 따르면, 합성 데이터는 실제 사물이나 사건, 사람을 기반으로 얻은 데이터보다 AI 모델을 훈련하는 게 더 적합하다고 한다. 개발자가 신경망을 훈련하려면 신중하게 레이블이 붙여진 대규모 데이터 세트가 필요하며, 훈련하는 데이터가 다양하면 다양할수록 보다 정확한 AI 모델을 만들 수 있다. 문제는 수천에서 수천만 개의 요소가 포함된 데이터 세트를 수집하고 레이블을 지정하는 데는 장시간이 소요될 뿐만 아니라 비용이 엄청나게 비싸다는 것이다. 이때 합성 데이터를 활용하면 적은 비용으로 대량의 데이터를 확보할 수 있다. 최초의 전용 합성 데이터 서비스업체인 AI 레버

메타버스, NFT 세상에 놀러 간 AI [내부링크]

메타버스 세계 안에서는 ‘본래의 나(본캐)’가 아닌 또 다른 가상의 ‘나(부캐)’가 그동안 내가 하지 못했던 일을 하고 돈도 벌 수 있는 세상이 있다. 위키백과의 정의를 보면, “메타버스(Metaverse) 또는 확장 가상 세계는 가상, 초월을 의미하는 ‘메타’(Meta)와 세계, 우주를 의미하는 ‘유니버스’ (Universe)를 합성한 신조어다. ‘가상 우주’라고 번역하기도 했다. 1992년 출간한 닐 스티븐슨의 소설 ‘스노 크래시’에서 가장 먼저 사용했다”라고 설명되어 있다. NFT에 대해서도 “대체 불가능한 토큰(代替不可能 토큰, Non-fungible token, NFT)은 블록체인에 저장된 데이터 단위로, 고유하면서 상호 교환할 수 없는 토큰을 뜻한다. NFT는 사진, 비디오, 오디오 및 기타 유형의 디지털 파일을 나타내는 데 사용할 수 있다. 가상의 진품 증명서 역할을 하므로 대체 불가능하고 사본은 인정되지 않는다. 이러한 디지털 항목의 사본은 누구나 얻을 수 있지만 NF

로봇은 AI와 달라 [내부링크]

나무위키에서 잘 설명되어 있어 아래와 같이 인용해 본다. 간혹 AI와 로봇을 혼동, 혼용하는 사람들도 있는데 따로 두고 생각해야 한다. AI라는 분야가 대중들과 가까워진 시기가 상당히 최근의 일이고, 미디어에서 보여주는 로봇들이 대부분 당연한 듯이 자칭 AI 기술을 탑재하고 나오는 경우가 많지만, 이 둘은 애초부터 추구하는 목적 자체가 다른 분야다. AI는 어떤 정보를 받아서 해석하여 결과를 출력하는 등 정보처리 차원의 문제다. 어떤 입력을 어떻게 처리해서 주었을 때 어떤 결과가 나오는지, 얼마나 정확한지 등의 사안이 가장 중요한 문제다. 만일 어떤 대상을 예측하기 위한 AI라면 그 대상을 얼마나 높은 정확도로 예측하는지가 중요할 것이며, 주어진 정보를 토대로 지지대나 철봉 따위의 기구를 자동 설계하는 인공지능이라면 어느 정도까지 최소의 비용으로 최대의 내구력을 얻을 수 있을지가 중요할 것이다. 이렇게 인공지능은 정보로 시작해서 정보로 끝나는 분야이므로 로봇 등의 기계적인 요소와는

AI와 5G·6G는 친구 [내부링크]

2022년 3월 과학기술정보통신부가 디지털 대전환 가속화를 위한 ‘(가칭)디지털 혁신기술 확보전략’을 수립하고, 발표했다. 특히, 10대 국가 필수전략 기술 분야를 선정하고 육성계획을 발표하였는데, AI, 5G·6G, 양자, 사이버 보안, 지능형 반도체 등 디지털 기술 분야와 우주, 첨단로봇 등이 포함되어 있다. 10대 필수전략에 선정된 AI와 5G·6G는 어떤 연관성이 있을까? 먼저 5G·6G를 위한 AI(AI for Network)를 보면, 무선 네트워크는 정보 파이프라인 역할 외에 텔코 엣지 및 퍼블릭 클라우드를 수용하여 컴퓨팅 역할까지 겸할 수 있다. 이에 따라 다양한 응용 및 버티칼 산업 분야에 AI를 활용할 수 있는 여건을 갖추면서, 무선 네트워크는 인프라는 물론 플랫폼의 지능화를 향해 거듭나고 있다. 이로 인해 갈수록 복잡해지는 고난도의 네트워크 문제를 지능적으로 해결할 수 있을 뿐 아니라 네트워크의 비용 및 성능을 개선하고, 가입자의 통신 체감 품질을 향상할 수 있게

인간 두뇌 흉내 경쟁하는 AI와 뉴로모픽(Neuromorphic, 인간 두뇌의 신경망을 모방한 신개념 반도체)칩 [내부링크]

현재 우리가 사용하고 있는 컴퓨터는 헝가리의 폰 노이만 (1903~1957, 수학자)의 설계를 따른 것이다. 하지만 최근 사물인터넷, 자율 주행차, 인공지능 등 방대하고 대용량의 데이터들이 쏟아지면서 현대 컴퓨팅 시스템은 기술적 한계에 직면하고 있다. 이러한 현대 컴퓨팅의 기술적 한계를 극복하기 위한 대안으로 나온 것이 ‘뉴로모픽(Neuromorphic)’ 칩이다. ‘뉴로모픽칩’이란 인간의 뇌의 신경세포와 시냅스를 모사해 많은 양의 데이터를 효율적으로 처리할 수 있는 반도체를 말한다. 즉, ‘뉴로모픽칩’은 인간의 두뇌를 구성하는 신경 시스템을 모사한 반도체다. 뉴런(Neuron)과 형태(Morphic)의 합성어에서 알 수 있듯이 반도체에 인간의 뇌 신경을 구성하는 뉴런과 시냅스를 모사해 적용했기 때문에 비구조화 신호를 효율적으로 처리하고 높은 에너지 효율로 많은 양의 데이터를 처리할 수 있다. 뉴로모픽칩의 선두주자는 인텔이다. 인텔은 지난 2021년 10월 스스로 학습하는 뉴로모픽칩