AI: 인간처럼 사고하고 학습하는 시스템의 전체를 의미
Machine Learning: 컴퓨터가 스스로 학습하여 인공지능의 성능을 향상 시키는 기술 방법
Deep Learning: 인공신경망을 이용한 기계학습
신경망 예시
| 구성 요소 | 설명 |
|---|---|
| 입력층 (Input Layer) | 외부 데이터를 신경망에 전달하는 시작 지점 |
| 은닉층 (Hidden Layer) | 입력 데이터를 처리하고 특징을 추출하는 중간 층. 여러 층 가능 |
| 출력층 (Output Layer) | 최종 결과를 출력하는 층 (예: 분류 결과) |
| 뉴런 (Neuron) | 입력값을 받아 계산하고 다음 층으로 전달하는 기본 단위 |
| 가중치 (Weight) | 입력값의 중요도를 조절하는 값 |
| 편향 (Bias) | 결과값을 보정하는 상수. 뉴런당 하나씩 존재 |
| 활성화 함수 (Activation Function) | 비선형성 부여. 출력 여부를 결정하는 수식 (예: ReLU, Sigmoid 등) |
신경망 학습 순서
1. 신경망 생성 Sequential()
2. 신경망에 층을 하나씩 추가 add(Dense(출력층, 활성화함수, 입력shape))
3. 학습준비(옵티마이저, 손실함수, 평가기준 설정) model.compile( 옵티마이저, 손실함수, 지표)
4. 모델 훈련 model.fit(x,y, batch_size=1, epochs=100)
5. 모델 구조 확인 model.summary() 요약 param계산
6. 모델을 이용하여 예측하기 model.predict(x)
7. 시각화
batch_size=100이면batch_size = 100 → 한 번에 100건씩 학습모델이 어떻게 학습할지 방향을 정해주는 역할
| 이름 | 설명 |
|---|---|
| SGD | Stochastic Gradient Descent. 확률적 경사 하강법 |
| Adam | Adaptive Moment Estimation. 빠르고 안정적 |
| RMSprop | 학습률을 자동 조정해 진동 줄임 |
| Adagrad | 희귀한 피처에 유리 |
| Adadelta | Adagrad의 단점 보완 버전 |
예측값이 얼마나 틀렸는지 계산하는 함수
| 이름 | 사용 상황 |
|---|---|
| mean_squared_error | 회귀 문제 |
| binary_crossentropy | 이진 분류 |
| categorical_crossentropy | 다중 분류 (원-핫 벡터) |
| sparse_categorical_crossentropy | 다중 분류 (정수 레이블) |
손실 함수는 1개의 데이터 오차
비용 함수는 전체 데이터 평균 오차
뉴런이 값을 출력할지 말지를 결정하는 함수
→ 비선형성을 부여하여 모델 성능 향상
| 함수 | 설명 |
|---|---|
| ReLU | 0 이하면 0, 초과는 그대로 출력. 빠르고 기본값 |
| Sigmoid | 0~1 사이. 이진 분류에서 사용 |
| Softmax | 다중 클래스 확률 분포로 출력 (출력층에 사용) |
# ReLU 예시
def relu(x):
return max(0, x)