딥러닝(1) - ANN, DNN, CNN 본문
ANN Artificial Neural Network; 인공신경망
특징
- 딥러닝의 기초
- 사람의 신경망 원리와 구조를 모방하여 만든 기계학습 알고리즘
- 인간의 뉴런
- 수상돌기에서 자극이라는 신호를 받아 신경세포를 거쳐 축삭돌기를 통해 또 다른 신경세포에게 신호를 전달
◼️ 수상돌기: 입력층
◼️ 신경세포: 노드
◼️ 축삭돌기: 출력층 - 축삭말단과 다른 신경세포와의 연결을 이어주는 부위는 시냅스
- 수상돌기에서 자극이라는 신호를 받아 신경세포를 거쳐 축삭돌기를 통해 또 다른 신경세포에게 신호를 전달
- ANN의 퍼셉트론(뉴런의 고전적인 ANN모델에서의 명칭)
일차방정식인 y=ax+b에 기반하여 퍼셉트론에서는 y=wx+b로 적용할 수 있음
- x1, x2라는 값을 입력받아 노드를 통해 또 다른 퍼셉트론(뉴런)에게 전달
- 가중합: 입력값(x)과 가중치(w)의 곱을 모두 더한 다음 바이어스(b, 편향)를 더한 값
- 활성화 함수: 가중합의 결과를 가지고 1 또는 0을 판단하여 출력해서 다음으로 전달
◼️ ReLU(Rectified Linear Unit, 렐루) 함수: 제일 많이 씀, 0을 넘으면 그대로 출력, 0 이하면 0
◼️ 시그모이드 함수: ‘S자 모양’이라는 뜻, 0~1 사이의 값으로 압축함
◼️ tanh 함수, softmax 함수 등 - 후술할 알고리즘들은 ANN에서 파생된 기술들임
- 입력층(Input Layer) → 은닉층(1개 또는 없음) → 출력층(Output Layer) 구조
◼️ 은닉층 없음: 단층 퍼셉트론
◼️ 은닉층 1개 이상: 다층 퍼셉트론(은닉층이 여러 개인 DNN도 다층 퍼셉트론에 해당)
예시 코드
model = Sequential([
Dense(3, activation='relu', input_shape=(2,)), # 은닉층 (3개 뉴런, ReLU)
Dense(1, activation='sigmoid') # 출력층 (1개 뉴런, 시그모이드 활성화)
])
적용 사례
- 비교적 단순한 패턴 인식 문제에 사용됨
- 스팸 메일 필터링: 이메일 내용을 기반으로 스팸 여부 분류
- 회귀 분석: 주택 가격 예측
DNN Deep Neural Network; 심층신경망
특징
- ANN의 확장된 형태로, 은닉층이 2개 이상으로 여러 개 있는 인공신경망
- 입력 데이터에서 특징을 점진적으로 추출하며 학습 성능 향상
- 입력층(Input Layer) → 은닉층(여러 개) → 출력층(Output Layer) 구조
예시 코드
model = Sequential([
Dense(64, activation='relu', input_shape=(2,)), # 은닉층 1 (64개 뉴런, ReLU)
Dense(32, activation='relu'), # 은닉층 2 (32개 뉴런, ReLU)
Dense(16, activation='relu'), # 은닉층 3 (16개 뉴런, ReLU)
Dense(1, activation='sigmoid') # 출력층 (1개 뉴런, 시그모이드 활성화)
])
적용 사례
- ANN보다 더 복잡한 데이터의 패턴을 학습할 수 있음
- 자율주행 자동차: 센서 데이터를 분석하여 장애물 감지
- 음성 인식 (Google Assistant, Siri): 음성을 텍스트로 변환
CNN Convolutional Neural Network; 합성곱 신경망
특징
- 합성곱 층(Convolution Layer)과 풀링 층(Pooling Layer)으로 패턴을 추출하고, 완전연결층(Fully Connected Layer)에서 최종 분류
숫자 2의 필기체를 CNN으로 분석하는 과정 - 합성곱: 데이터와 가중치가 들어있는 마스크를 곱하여 합한 후 새로운 층에 해당 값을 기입하고 한칸씩 옮기면서 해당 작업을 반복
합성곱 층 작업 과정 - Max pooling: 영역 중 가장 큰 숫자 출력
풀링 층 작업 과정 - 합성곱 층과 풀링 층 반복 후 2차원(혹은 3차원) 배열을 1차원 배열로 펼치는 평탄화(Flatten) 작업 진행
- CNN 결과
학습한 CNN으로 모델에 숫자 5의 필기체를 넣어 분석한 결과
- 합성곱: 데이터와 가중치가 들어있는 마스크를 곱하여 합한 후 새로운 층에 해당 값을 기입하고 한칸씩 옮기면서 해당 작업을 반복
예시 코드
model = Sequential([
Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)), # 합성곱층1
Conv2D(64, (3, 3), activation='relu'), # 합성곱층2
MaxPooling2D(pool_size=(2, 2)), # 최대 풀링
Flatten(), # 1D 벡터 변환
Dense(128, activation='relu'), # 완전 연결층
Dense(10, activation='softmax') # 출력층 (10개 클래스)
])
적용 사례
- 주로 이미지 및 영상 처리에 특화되어 있음
- 필기체 식별: 숫자, 영어 필체 분석
- 얼굴 인식: Face ID, 감시 카메라의 얼굴 분석
'AI' 카테고리의 다른 글
AWS AIF-C01 시험 정리(2) (0) | 2025.07.09 |
---|---|
AWS AIF-C01 시험 정리(1) (0) | 2025.07.07 |
AICE Associate 시험 총정리 (0) | 2025.06.30 |
딥러닝(2) - RNN, GAN (0) | 2025.03.24 |
Comments