인공지능의 발전
[인공지능] 인간의 지능을 기계가 인공적으로 구현하는 것
- 인공지능을 의미하는 AI는 Artificial Intelligence의 약자이다.
- 인공지능이란 용어가 처음 사용된 것은 1956년 미국 다트머스 대학이다.
인공지능의 발전 과정 | ||
단계 | 특징 | |
전문가 시스템 (논리/규칙 기반) |
컴퓨터의 계산 능력을 이용해 논리적 추론 방법을 가르침으로써 특정 분야의 데이터베이스를 구축하여 전문가를 만들려고 하였음 |
|
인공신경망 (연결 기반) |
신경망 이론이 등장하였으나 컴퓨터의 성능이 낮았으며, 훈련시킬 데이터도 부족하였음 |
|
기계 학습 (통계 기반) |
많은 양의 데이터 기반으로 패턴을 인식하는 기계 학습이 시작되었으나, 최적화 방식으로 문제를 해결하기 때문에 다른 분야에 적용하기 어려움 |
|
딥러닝 (인공신경망 기반) |
컴퓨터의 연산 능력이 크게 향상되고 빅 데이터를 활용하면서 인공신경망을 기반으로 컴퓨터 스스로 학습하는 딥러닝 방식이 적용됨 |
[기계 학습] 알고리즘을 연구하고 구축하는 기술로, 컴퓨터가 스스로 학습하며 문제를 자동으로 해결하는 것
기계 학습은 학습시키는 방법에 따라 지도 학습, 비지도 학습, 강화 학습으로 나눌 수 있다.
[지도 학습] 입력값과 결괏값을 같이 주고 학습시키는 방법
[비지도 학습] 입력값만 이용해 학습하며, 데이터의 특성을 분석하여 분류하는 학습 방법
[강화 학습] 현재의 상태에서 어떤 행동을 취하는 것이 최적인지를 학습하는 것, 보행 로봇이나 자율 주행차에 쓰임
[딥러닝] 인공신경망을 이용해 스스로 사람처럼 학습하는 기계 학습의 한 분야
신경 세포(뉴런) | 인공 신경 세포(인공 뉴런) | ||
① | 전기 신호를 전달 받음. | 입력값 $x$ | $x_1$, $x_2$ |
② | 입력 받은 전기 신호를 종합 | 함수 $f$ | $a=f(x_1$, $x_2)=x_1w_1+x_2w_2$ |
종합된 신호가 일정한 수준 (임곗값)을 초과하는지 판단 |
함수 $g$ | $ y = g(a) = \begin{cases} 0 & (a \leq 0) \\ a & (a > 0) \end{cases} $ |
|
③ | 전기 신호를 전달함. | 출력값 $y$ | $0$ 또는 $a$ |
[튜링 테스트] 기계와 자연어로 소통했을 때 인간과 구별할 수 없다면 인공지능을 지녔다고 인정함
2014년 6월 '유진 구스트만'이라는 챗봇이 통과했다고 발표됨
인공지능과 수학
[명제] 참 또는 거짓을 명확히 구분할 수 있는 문장이나 식
[진릿값] 명제의 참과 거짓(참이면 T나 1, 거짓이면 F나 0)
논리 연산자 | ||
연산자 | 기호 | 뜻 |
NOT | ~ | 명제 p가 참이면 ~p는 거짓, p가 거짓이면 ~p는 참 |
AND | ∧ | 두 명제 p와 q가 모두 참이면 p∧q는 참, 나머지 경우는 거짓 |
OR | ∨ | 두 명제 p와 q 중에서 하나라도 참이면 p∨q는 참, 모두 거짓인 경우는 거짓 |
XOR | ⊕ | 두 명제 p와 q의 진릿값이 다르면 p⊕q는 참, p와 q의 진릿값이 같으면 거짓 |
[진리표] 명제 p, q의 진릿값이 주어질 때, 진릿값을 정리한 표
진리표 | |||||
p | q | ~p | p∧q | p∨q | p⊕q |
T | T | F | T | T | F |
T | F | F | F | T | T |
F | T | T | F | T | T |
F | F | T | F | F | F |
[순서도] 문제 해결 절차를 각 단계별로 구분하고, 이들 상호 간의 관계를 알아보기 쉽게 기호를 사용하여 그림으로 나타낸 것
기호 | 기호의 설명 | 보기 |
순서도의 시작과 끝을 나타낼 때 사용한다. | ||
각종 연산이나 데이터 이동 등의 처리 기능을 나타낸다. |
|
|
자료를 비교 판단하여 조건에 따라 경우를 나눌 때 사용한다. | ||
데이터를 문서로 출력하는 기능을 나타낸다. | ||
기호를 연결하여 처리의 흐름을 나타내는 선이다. |
텍스트 자료의 표현
[정형화된 텍스트 자료] 정해진 형식으로 분류되어 있는 자료(나이, 성별, 이름)
[비정형화된 텍스트 자료] 특별한 형식을 가지지 않는 자료(보고서, 댓글, 설명서)
정형화된 텍스트 자료 | 비정형화된 텍스트 자료 |
규격화된 표로 나타낼 수 있는 자료이다. | 규격화된 표로 나타낼 수 없는 자료이다. |
규격화되어 삽입, 수정 등 자료의 관리가 쉽다. | 규격화되지 않아 자료를 가공하기 어렵다. |
원하는 정보를 찾아 해석하기 쉽다. | 규칙성을 찾기 쉽지 않아 해석하기 어렵다. |
자료를 규격화된 상태로 수집하기 어렵다. | 대량의 자료를 빠르게 수집할 수 있다. |
[벡터] 순서를 정하여 수를 나열한 것, $\vec{a}$
[성분] 벡터 $\vec{a}=(a_1,\ a_2,\ \cdots,\ a_n)$일 때, 각각의 $a_1,\ a_2,\ \cdots,\ a_n$, $|\vec{a}|=\sqrt{{a_1}^2,\ {a_2}^2,\ \cdots,\ {a_n}^2}$
두 벡터 사이의 거리는 $|\vec{a}=\vec{b}|=\sqrt{(a_1-b_1)^2+(a_2-b_2)^2+\cdots+(a_n-b_n)^2}$
자료를 수학 기호로 나타내기 | |||||
연관 단어 | 사용감 | 색상 | 가격 | 제품 상태 | 향 |
언급 횟수(회) | 1120 | 230 | 780 | 188 | 50 |
(1120, 230, 780, 188, 50) |
문장을 벡터로 나타내기 | |||||
배송 | 가격 | 포장 상태 | |||
빠르다 | 느리다 | 싸다 | 비싸다 | 좋다 | 엉망이다 |
1 | -1 | 1 | -1 | 1 | -1 |
가격은 저렴한데 배송이 느리네요: (-1, 1, 0) |
단어를 벡터로 나타내기 | |||
속성 | 사람 | 비둘기 | 비행기 |
생명체인가? | 1 | 1 | 0 |
하늘을 나는가? | 0 | 1 | 1 |
영장류인가? | 1 | 0 | 0 |
(1, 0, 1) | (1, 1, 0) | (0, 1, 0) |
[텍스트 마이닝] 비정형화된 자료로부터 자연어 처리 기술과 문서 처리 기술을 적용하여 의미 있는 정보를 추출하는 기술
- 기존의 방법들이 분석할 수 없었던 자료를 분석함으로써 다양한 새로운 가치를 창출할 수 있음
- 무분별한 개인 정보의 수집 및 활용으로 사생활 침해 등의 문제를 일으킬 수 있음
- 소셜 미디어 데이터의 경우 몇몇 영향력 있는 소수의 의견이 과도하게 작용해 데이터의 편향성이 생길 수 있음
텍스트 자료의 처리
벡터의 덧셈 | ||
$\vec{a}$ | $\vec{b}$ | $\vec{a}+\vec{b}$ |
$(a_1, \, a_2, \, \cdots, \, a_n)$ | $(b_1, \, b_2, \, \cdots, \, b_n)$ | $(a_1+b_1, \, a_2+b_2, \, \cdots a_n+b_n)$ |
(3, 1, 4) | (3, 4, 1) | (3+3, 1+4, 4+1) = (6, 5, 5) |
벡터의 뺄셈 | ||
$\vec{a}$ | $\vec{b}$ | $\vec{a}-\vec{b}$ |
$(a_1, \, a_2, \, \cdots, \, a_n)$ | $(b_1, \, b_2, \, \cdots, \, b_n)$ | $(a_1-b_1, \, a_2-b_2, \, \cdots a_n-b_n)$ |
(3, 1, 4) | (3, 4, 1) | (3-3, 1-4, 4-1) = (0, -3, 3) |
벡터의 실수배 | |
$\vec{a}$ | $2\vec{a}$ |
$(a_1, \, a_2, \, \cdots, \, a_n)$ | $(2a_1, \, 2a_2, \, \cdots, \, 2a_n)$ |
(3, 1, 4) | (6, 2, 8) |
텍스트 자료의 시각화 방법 | ||
막대그래프 | 단어의 출현 빈도수를 나타낼 때 유용함. | |
원그래프 | 상대도수로 나타낸 자료 표현에 유용함. | |
단어 구름 | 단어의 출현 빈도수에 따라 글자 크기를 달리하여 나타내는 그래프 |
단어를 벡터로 나타내는 과정 | 구현 과정 예시 |
1. 필요한 벡터의 성분 개수를 정한다. | 모든 단어를 성분이 2개인 벡터로 나타낸다. |
2. 벡터의 성분에 부여하는 값의 범위를 정한다. | 모든 벡터의 성분은 -3과 3 사이의 값으로 한다. |
3. 각 단어를 무작위로 벡터에 대응시킨다. | 강아지 → (1, 1) 멍멍이 → (1.5, 0.8) |
4. 다양한 문장을 학습시켜 문장에서 동시에 출현하는 단어인 경우 해당 단어의 벡터 성분의 값을 해당 벡터 사이의 거리가 가까워지도록 조정한다. |
[1회 학습] - 입력된 문장: 멍멍이는 강아지야. - 벡터 성분 값 조정: 멍멍이 → (1.5, 0.9) [2회 학습] - 입력된 문장: 강아지를 멍멍이라 해. - 벡터 성분 값 조정: 멍멍이 → (1.4, 0.9) |