본문 바로가기

관리 메뉴

딥러닝(1) - ANN, DNN, CNN 본문

AI

딥러닝(1) - ANN, DNN, CNN

ITst 2025. 3. 23. 21:37

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도 다층 퍼셉트론에 해당)

 

은닉층이 하나이며 은닉층 내 뉴런이 세 개인 ANN 구조

예시 코드

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) 구조

은닉층이 세 개인 DNN 구조(일반적으로 은닉층 내 뉴런의 갯수는 ½로 점차 줄어들게 설계함)

예시 코드

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