1. 인공지능 개요
1.1. 인공지능의 정의
-
인공지능(AI)
- 인간의 지적 능력(사고, 학습, 문제해결 등)을 컴퓨터 하드웨어와 소프트웨어로 구현하는 기술
-
분류
- 약한 인공지능(특정 분야)
- 강한 인공지능(인간과 비슷하거나 뛰어난 지능)
-
패러다임
- 기호주의(Symbolism)
- 인간의 지능은 기호(Symbol)와 논리적 규칙을 통해 정보를 처리한다고 보는 입장
- Top-Down 방식: 고전적 AI, 규칙 기반 AI
- 연결주의(Connectionism)
- 인간의 지능은 뇌의 신경망 구조(뉴런의 연결)를 모방하여 구현될 수 있다고 보는 입장
- Bottom-Up 방식: 신경망, 딥러닝(Deep Learning)
- 기호주의(Symbolism)
1.2. 인공지능의 역사
-
태동기(1940~50년대)
- 1943년 워렌 맥컬럭: 인간 두뇌 신경(뉴런)의 논리적 모델 제시 (퍼셉트론의 원류)
- 1950년 앨런 튜링: 튜링 테스트 제안 (기계도 생각할 수 있는가?)
- 1956년 다트머스 회의: 인공지능 용어 처음 사용
- 1957년 프랭크 로젠블랫: 퍼셉트론(Perceptron) 개발
-
전문가 시스템
- 1965년 덴드럴(Dendral) 등 특정 분야 전문가 지식을 컴퓨터에 정리
-
첫 번째 겨울(1970년대)
- 마빈 민스키가 퍼셉트론이 XOR 문제(비선형 문제)를 풀 수 없음을 증명하며 침체기 도래
-
재도약과 두 번째 겨울
- 1986년 제프리 힌튼: 오차역전파(Backpropagation) 알고리즘으로 다층 퍼셉트론 학습 성공
- 1989년 얀 르쿤: CNN으로 손글씨 인식 성공
- 1990년대~2000년대 초: 신경망 구조가 복잡해지며 문제 발생(기울기 소실, 과적합 등), SVM 등 머신러닝 알고리즘이 더 각광받으며 두 번째 겨울 맞이
-
딥러닝의 중흥기 (2006년~현재)
- 2006년 제프리 힌튼이 딥러닝 용어 사용 및 심층 신경망 학습 해결책 제시
- 2012년 알렉스넷(AlexNet)이 이미지 인식 대회 우승
- 2016년 알파고(AlphaGo) 등장
1.3. 인공지능 활용 분야
-
영상/의료
- 얼굴 인식 온도 측정, 흉부 엑스레이 분석
-
예술/창작
- OpenAI GPT-3: 소설 쓰기, 코딩, 번역 등 자연어 처리
- MuseNet/JukeBox: 음악 작곡 및 생성 (RNN 기술 활용)
- GAN(생성적 적대 신경망): 이미지 스타일 변환(모네 화풍 등), 딥페이크(Deep fake) 영상 생성
-
추천/감지
- 유튜브/넷플릭스 개인화 추천, 이상 감지(스팸 필터링, 금융 사기 방지)
1.4. 미래와 윤리
-
특이점(Singularity)
- 인공지능이 인간의 지능을 넘어서는 순간 (레이 커즈와일 예측)
-
윤리 이슈
- 인류 파멸의 우려(일론 머스크) vs 삶의 질 향상(마크 저커버그)
- 윤리적 규범 필요성 대두
2. 머신러닝
2.1. 인공지능, 머신러닝, 딥러닝의 관계
-
포함 관계
- 인공지능 > 머신러닝 > 딥러닝
-
머신러닝(Machine Learning)
- 명시적인 프로그래밍 대신,
- 데이터를 기반으로 기계가 스스로 학습하여 성능을 향상시키는 인공지능의 한 분야이다.
-
딥러닝(Deep Learning)
- 머신러닝의 한 종류로,
- 인간 뇌의 뉴런 구조를 모방한 인공신경망을 여러 층 쌓아 만든 심층신경망(DNN)을 사용한다.
2.2. 머신러닝의 개요
-
정의
- 아서 사무엘(1959)이 정의
- 명시적 프로그래밍 없이 데이터로부터 학습하여 성능을 향상시키는 것
-
전통적 프로그래밍 vs 머신러닝
- 규칙을 코딩하는 것이 아니라, 데이터(입력+출력)를 주면 규칙(프로그램)을 찾아냄
2.3. 수행 과정
- 데이터 수집: 품질과 양이 중요
- 데이터 전처리: 결측값/이상치 처리, 정규화(Normalization), 특성(Feature) 및 레이블(Label/정답) 정의
- 모델 학습: 훈련 데이터로 알고리즘 학습
- 평가 및 개선: 검증/테스트 데이터로 정확도 및 손실함수 평가
2.4. 머신러닝 분류
2.5. 주요 알고리즘
- 선형 모델: 데이터를 가장 잘 표현하는 선(함수)을 찾는 기법 (선형 회귀, 선형 분류).
- K-최근접 이웃 (KNN): 새로운 데이터 주위의 가장 가까운 K개 이웃의 다수결로 분류.
- K-평균 군집화 (K-Means Clustering): 데이터를 K개의 군집으로 묶는 비지도 학습 (중심점 이동 반복).
- 차원 축소: 데이터의 특성 수를 줄여 효율성을 높임.
3. 인공신경망과 딥러닝
3.1. 기본 구조: 퍼셉트론
-
퍼셉트론(Perceptron)
- 구조: 입력값() × 가중치() + 편향() → 활성화 함수 → 출력
- 연산: 가중 합계()가 임계값을 넘으면 활성화(출력)
-
활성화 함수(Activation Function)
- 신호의 세기를 조절하여 출력 결정
- (계단 함수, 시그모이드, ReLU 등)
- cf. 활성화 함수
3.2. 인공신경망(ANN) 구조
-
입력층(Input Layer)
- 데이터 입력
-
은닉층(Hidden Layer)
- 입력과 출력 사이의 층, 복잡한 특성 학습
-
출력층(Output Layer)
- 최종 결과 출력
-
다층 퍼셉트론(MLP)
- 은닉층을 둔 신경망
-
심층 신경망(DNN/딥러닝)
- 은닉층이 여러 개(깊은 층)로 구성된 신경망
3.3. 학습 원리
-
순전파(Forward Propagation)
- 입력에서 출력 방향으로 계산 진행
-
손실 함수(Loss Function)
- 예측값과 실제값(정답)의 차이(오차)를 계산
- (오차를 최소화하는 것이 목표)
-
경사하강법(Gradient Descent)
- 손실 함수의 값을 줄이기 위해 기울기가 낮은 쪽으로 가중치와 편향을 조금씩 수정
-
오차역전파(Backpropagation)
- 출력층에서 발생한 오차를 입력층 방향(역방향)으로 전파하며 가중치를 수정
3.4. 딥러닝 프레임워크(라이브러리)
-
텐서플로(TensorFlow)
- 구글 개발
- 데이터 흐름 그래프 사용
- 가장 널리 사용됨
-
케라스(Keras)
- 프랑소아 숄레 개발
- 고수준 API
- 텐서플로 위에서 작동하며 직관적이고 쉬움
-
파이토치(PyTorch)
- 페이스북 개발
- 파이썬 친화적이며 연구용으로 인기 상승 중
- cf. 파이토치 첫걸음