머신러닝과 알고리즘의 이해 : 인공지능, 딥러닝, 머신러닝이란?
인공지능(AI, Artificai Intelligence)란?
- 사람과 유사한 지능을 가지도록 인간의 학습/추론/지각/자연어 이해 능력 등을 컴퓨터 프로그래밍으로 실현하는 기술
- 문제 해결 능력을 위해 상황을 인지하고 파악하고 추론하여 답을 얻어내는 인간의 지능을 컴퓨터가 가질 수 있도록 실현한 기술 (1956년 다트머스 하회에서 존 매커시 교수가 최초로 인공지능이라는 용어를 창안)
인공지능의 종류
1. 강한 인공지능
- 사람과 같은 지능
- 마음을 가지고 사람처럼 느끼면서 지능적으로 행동
- 추론/문제해결/판단/계획/의사소통/자아 의식/감정/지혜/양심
- 튜링 테스트
2. 약한 인공지능
- 특정 문제를 해결하는 지능적인 행동
- 알파고와 같이 사람의 지능을 흉내
인공지능의 역사
1943~1956 인공지능 태동기
1943 - 윌터파츠와 워럭맥컬러의 MCP 뉴런
1950 - 튜링테스트
1956 - 다트머스 AI컨퍼런스
1956~1974 인공지능 황금기
1956 다트머스 AI컨퍼런스
1957 프랑크 로젠블라트 퍼셉트론
1959 데이비드 허블라 토로스텐 비셀의 시각피질 연구
1974~1980 1차 AI겨울
1980~1987 전문가시스템(일본), 신경망 모델의 발전 : 다층 퍼셉트론 / 오차역전파 알고리즘
1987~1993 2차 AI겨울(전문가 시스템 실패)
1998 LeNet-5
2012 AlexNet
2015 텐서플로
2016 알파고
머신러닝이란
- 머신러닝은 규칙을 일일이 프로그래밍하지 않아도 자동으로 데이터에서 규칙을 학습하는 알고리즘을 연구하는 분야
ㄴ 프로그래머의 명시적 코딩 없이 자기개선고 에제를 통한 학습
ㄴ 학습으로 얻어진 정보를 통하여 미래의 임의의 데이터에 대한 결과(값, 분포)등을 예측함
- 인공지능의 하위분야 중에서 지능을 구현하기 위한 소프트웨어를 담당하는 핵심분야
- 머신러닝은 통계학에서 유래된 머신러닝 알고리즘이 많아 통계학과 깊은 관련이 있으며 컴퓨터 과학 분야와 상호 작용하면서 발전
- 머신러닝의 필요한 주요 요소
ㄴ 다양한 확장자의 데이터 (동영상, 사진, 텍스트, 로그, html, xlsx)
ㄴ 알고리즘 : 컴퓨터에세 지능(생각)을 심어주는 부분 : 수학적 통계 모델, 의사결정트리, 서포트벡터머신, 신경망 등
- 오픈소스 통계 소프트웨어인 R에는 다양한 머신러닝 알고리즘이 구현
- 최근 머신러닝은 통계나 수학 이론보다 경험을 바탕으로 발전하는 경우가 많음
- 컴퓨터 과학 분야의 대표적인 머신러닝 라이브러리는 사이킷런(scikit-learn)
- 사이킷런 라이브러리는 파이썬 API를 사용하는데 파이썬 언어는 배우기 쉽고 컴파일하지 않아도 되기 때문에 사용자라 편리
- 사이킷런에서 제공하는 클레스와 함수를 사용할 머신러닝 프로그램을 쉽게 만들 수 있음
- 머신러닝 라이브러리에 포함된 알고리즘은 안정적이며 성능이 검증
머신러닝이 중요한 이유
1. 빅데이터의 부상으로 다양한 산업 영역에서 문제를 해결하는데 머신러닝 활용
- 계산금융
- 영상처리 및 컴퓨터 비전
- 계산 생명공학
- 에너지 생산
- 자동차 항공 및 제조
- 자연어 처리
2. 더 많은 데이터, 더 많은 질문, 더 나은 답변
- 머신 러닝의 알고리즘은 통찰력을 생성하고 더 나은 의사결정과 예측을 수행하도록 도와주는 자연 패턴을 데이터에서 찾음
- 자연 패턴은 의료진단, 주식거래, 에너지 부하 예측증에서 주요한 결정을 내리기 위해 매일 사용 (미디어 사이트에서 노래, 영상 추천 및 소매업체는 머신러닝을 통한 고객의 구매행동에 대한 통찰을 얻음)
머신러닝은 언제 사용하여야 할까?
- 대용량의 데이터와 많은 변수가 관련이 되어 있지만 기존의 공식이나 방정식이 없는 복잡한 작업이나 무제에 머신러닝 사용
- 예를들어 다음과 같은 상황을 처리해야 할 경우 머신러닝이 좋은 옵션
ex) 얼굴 인식, 음성 인식의 경우처럼 직접 작성하는 규칙과 방정식이 너무 복잡한 상황
ex) 거래기록에서 사기를 감지하는 경우와 같이 작업 규칙이 지속적으로 바뀌는 상황
ex) 자동화된 트레이딩, 에너지 수요 예측, 쇼핑 추세 예측 경우처럼 데이터 특징이 계속 바뀌고 프로그램을 조정하여야 하는 상황
딥러닝이란?
딥러닝은 머신러닝의 하위 분야
- 많은 머신러닝의 알고리즘 중에 인공신경망(Artifical neural network)을 기반으로 한 방법을 통칭
- 사람들은 인공 신경망과 딥러닝에 구분을 두지 않고 사용
- 과거의 시도와 달리 최근의 딥러닝은 매우 긍정적이고 지속가능
- 대표적 딥러닝 라이브러리는 텐서플로 라이브러리 / 파이토치
- 이 라이브러리의 공통점은 인공 신경망 알고리즘을 전문적으로 다루고 있다는 것과 사용하기 쉬운 파이썬 API제공
딥러닝을 발전할 수 있게 하는 원동력
1. 복잡한 알고리즘을 훈련할 수 있는 풍부한 데이터
2. 컴퓨터 성능의 향상 (15년에 연산능력을 커버할 수 있는 GUP가 개발)
3. 혁신적인 알고리즘 개발
머신러닝과 딥러닝의 차이
- 머신러닝의 경우 데이터의 특징을 사람이 먼저 입력해주어야 하지만 딥러닝은 더 깊숙히 들어가 특징을 선정하는 것까지 인공신경망을 통하여 배워 사람이 데이터를 따로 지정할 필요가 없음
- 데이터 양에따른 성능으로 딥러닝의 경우 학습을 위하여 많은 데이터가 필요하고 많을 수록 딥러닝의 분석 정확도는 올라가지만 학습할 데이터가 많지 않은 경우라면 수작업이 들어간 머시러닝의 정확도가 더 높게 나오게 됨
인공지능 용어간 관계
데이터 순서 : AI>머신러닝>딥러닝
AI(인공지능) : 인간과 비슷하게 사고하는 컴퓨터의 지능을 구현하는 포괄적 갠ㅁ
머신러닝 : 데이터를 입력해 컴퓨터를 학습시키거나 스스로 배우게 하여 인공지능 성능을 향상시키는 작업
딥러닝 : 머신러닝의 한 분야로 신경망(ANN)를 통하여 학습하는 방법