Skip to main content

신경망

다층 뉴런 구조를 사용하여 복잡한 패턴을 학습하는 딥러닝 모델입니다.


설명

신경망(Neural Network)은 인간의 뇌 구조를 모방한 다층 퍼셉트론(MLP) 모델입니다.

여러 계층의 뉴런이 연결된 구조로, 입력 데이터를 여러 은닉층을 거쳐 변환하여 복잡한 비선형 패턴을 학습할 수 있습니다.

이미지 인식, 자연어 처리, 음성 인식 등 다양한 분야에서 높은 성능을 발휘합니다.


포트 구성

입력 포트

없음

출력 포트

  • 미학습 모델: 학습되지 않은 신경망 모델 (학습 노드에 연결하여 사용)

속성

레이어 구성 개수 설정

신경망의 은닉층(Hidden Layer) 개수를 설정합니다.

  • 많은 레이어: 복잡한 패턴 학습 가능, 과적합 위험 증가
  • 적은 레이어: 단순한 패턴 학습, 간단한 문제 해결에 적합

각 레이어의 크기 설정

각 은닉층 내부의 뉴런 개수를 설정합니다.

레이어 크기는 모델의 용량을 결정합니다.

  • 큰 크기: 많은 정보 저장, 복잡한 데이터 패턴 학습 가능
  • 작은 크기: 복잡한 데이터 패턴 학습 어려움

활성화 함수 선택

각 뉴런의 출력을 결정하는 함수를 선택합니다.

  • ReLU: 가장 널리 사용되는 활성화 함수

    • 입력 < 0: 출력 0
    • 입력 > 0: 입력값 그대로 출력
    • 양수에서 빠른 학습, 음수에서 뉴런 비활성화 가능성
  • Sigmoid: 출력을 0~1 사이로 압축

    • 이진 분류 문제의 출력층에 주로 사용
    • 확률 표현 가능
    • 입력값이 크면 학습 속도 느림
  • Tanh: 출력을 -1~1 사이로 압축

    • 0 기준 대칭적 분포
    • 출력 평균이 0에 가까워 안정적 학습
    • 입력값이 0에서 멀면 학습 속도 느림

솔버 선택

가중치를 학습하기 위한 최적화 알고리즘을 선택합니다.

  • Adam: 경사 하강법 기반 최적화

    • 각 파라미터마다 학습률 자동 조정
    • 이전 기울기 정보 활용하여 갱신
    • 다양한 문제에 효과적
  • SGD: 확률적 경사 하강법

    • 무작위 선택된 샘플로 기울기 계산
    • 학습 속도 효율적
    • 노이즈가 많은 데이터에서 수렴 느림
  • L-BFGS: 제한된 메모리 BFGS 알고리즘

    • 대규모 최적화 문제에 사용
    • 이전 단계의 그래디언트 차이 활용
    • 메모리 제약 상황에서 효과적

배치 사이즈 설정

한 번의 가중치 업데이트에 사용되는 샘플 개수를 설정합니다.

  • 작은 배치: 더 정확한 가중치 업데이트
  • 큰 배치: 업데이트 정확도 감소, 계산 효율성 증가

학습률 전략 선택

학습 과정에서 학습률을 조정하는 방법을 선택합니다.

  • Adaptive: 학습 진행에 따라 학습률 자동 조정

    • 초기 큰 학습률, 점진적 감소
    • 최적의 학습률 탐색
  • Invscaling: 반복에 따라 학습률 감소

    • 초기: 큰 학습률로 빠른 수렴
    • 후기: 작은 학습률로 세밀한 최적화
  • Constant: 고정된 학습률 사용

    • 사용자가 설정한 값 유지
    • 학습률 튜닝 필요

초기 학습률 설정

가중치 업데이트 양을 결정하는 학습률의 초기값을 설정합니다.

  • 큰 학습률: 빠른 수렴, 발산 위험
  • 작은 학습률: 안정적 학습, 느린 수렴

최대 에포크 횟수 설정

전체 데이터셋을 몇 번 사용할지 설정합니다.

에포크는 전체 학습 데이터를 한 번 모두 사용하는 단위입니다.

  • 적은 에포크: 제한된 학습, 성능 저하
  • 많은 에포크: 충분한 학습, 성능 향상, 과적합 가능성

얼리 스탑핑 사용 여부

검증 데이터 성능이 향상되지 않으면 학습을 조기 종료할지 결정합니다.

  • 사용: 과적합 방지, 일반화 성능 향상
  • 미사용: 최대 에포크까지 학습 진행

사용 방법

  1. 신경망 노드를 캔버스에 추가합니다
  2. 레이어 구조를 설정합니다 (레이어 개수, 각 레이어 크기)
  3. 활성화 함수를 선택합니다
  4. 솔버와 학습률 전략을 선택합니다
  5. 배치 사이즈, 학습률, 에포크 횟수를 설정합니다
  6. 출력된 미학습 모델을 모델 학습 노드에 연결합니다
  7. 학습용 데이터셋을 모델 학습 노드에 연결합니다
  8. 학습이 완료되면 학습된 모델을 일괄 예측 노드와 모델 평가 노드에서 사용할 수 있습니다

예제

신경망 예제