728x90
신경망
순방향 신경망의 구조와 설계 항목
- 현대에 들어와서 다층 퍼셉트론은 순방향 신경망, 퍼셉트론은 인공 뉴런이라 불린다.
- 순방향 신경망은 데이터 구조에 대한 특별한 가정사항이 없기 때문에 데이터는 서로 독립되어 있다고 가졍한다.
- 순방향 신경망 모델은 데이터가 한 방향으로 전달되는 순방향연결만을 갖는 구조로 되어 있으며
- 퍼셉트론은 연산과 같은 기본 뉴런 연산으로 실행된다.
순방향 신경망의 구조
- 순방향 신경망은 다음 그림과 같이 뉴런들이 모여 계층을 이루고 계층이 쌓여 전체 신경망을 이루는 구조로 되어 있다.
- 중요한 데이터를 선택하는 가중 합산 연산
- 가중치는 특징을 추출할 때 영향이 큰 데이터를 선택하는 역할을 한다.
- 특징 추출에 영향이 큰 데이터는 큰 가중치를 갖고 영향이 작은 데이터는 작은 가중치를 갖는다.
비선형 변환을 통해 특징을 추출하는 활성 함수
- 뉴런에 사용하는 활성 함수의 종류는 다양함
- 그 중 기본 활성 함수라고 할 수 있는 ReLU를 살펴보면
- 아래 그림과 같이 경첩 형태의 비선형 함수로 되어 있다.
- ReLU는 입력값이 0보다 크면 그대로 출력하고 0보다 작거나 같으면 0을 출력하는 구간 선형 함수이다.
범용 함수 근사기로서의 신경망
- 뉴런은 가중 합산과 활성 함수를 순차 실행하는 합성 함수이므로
- 뉴런의 그룹으로 정의되는 계층도 합성 함수이다
- 또한 계층을 순차적으로 쌓은 형태인 신경망 역시 합성 함수라고 할 수 있다.
- 이 떄 뉴런은 실함수로, 계층과 신경망은 벡터 함수로 정의되는데
- 각각 어떤 형태의 함수로 정의되는지 확인해 볼 것이다.
실함수와 벡터 함수
실함수인 뉴런
벡터 함수인 계층
- 계층은 입력도 벡터이고 출력도 벡터 함수이다.
- 계층을 이루는 각 뉴런은 이전 계층의 출력을 벡터 형태로 입력 받으며,
- 각 뉴런의 출력을 모아 벡터 형태로 출력한다.
- 이 때 입력 벡터의 크기는 이전 계층의 뉴런 수와 같고 출력 벡터의 크기는 현재 계층의 뉴런 수와 같다.
- 이전 계층의 뉴런이 n개이고 현재 계층의 뉴런이 m개라면
- 계층의 가중치의 크기는 n X m인 행렬 W로 정의되며 가중치 행렬의 각 열은 각 뉴런의 가중치를 나타난다.
벡터 함수들의 합성 함수인 신경망
- 신경망은 입력과 출력이 벡터인 벡터 함수이며 동시에 각 계층이 정의하는 벡터 함수를 순차적으로 실행하는 합성함수이다.
- 예를 들어 다음 그림은 4계층 신경망을 나타낸 것이다.
범용 근사 정리
- 신경망은 얼마나 광범위한 함수를 표현할 수 있을까?
- 신경망은 n차원 공간의 임의의 연속 함수를 근사하는 능력이 있다.
- 임의의 연속 함수를 근사할 수 있다는 것은 다음 그림의 왼쪽과 같이 클래스를 분류할 때 클래스 영역 간에 경계가 매우 복잡하더라도 연속된 곡선으로 표현할 수 있으며, 오른쪽과 같이 입력과 출력의 관계가 함수로 표현되는 회귀 문제에서 매우 복잡한 예측 곡선을 만들 수 있다는 의미이다.
- 신경망이 n 차원 공간의 임의의 연속 함수를 근사할 수 있는 범용 근사기라는 것은 범용 근사 정리로 증명되었다.
순방향 신경망의 설계 항목
- 순방향 신경망 모델을 설계하려면 어떤 항목들을 정해야 할까?
- 기본적으로 모델의 입력과 출력 형태, 활성 함수의 종류, 네트워크 크기 등을 고려해야 한다.
- 이제 각 설계 항목에 대해 자세히 확인해 보자.
분류 문제
- 분류 문제는 데이터의 클래스 또는 카테고리를 예측하는 문제이다.
- 아래 그림과 같이 개, 고양이, 토끼라는 세 종류의 클래스가 있을 때 개 이미지를 보면 개 클래스로 인식하고 고양이 이미지를 보면 고양이 클래스로 인식하며 토끼 이미지를 보면 토끼 클래스로 인식하는 문제를 분류 문제라고 한다.
회귀 문제
- 회귀 문제는 여러 독립 변수와 종속 변수의 관계를 연속 함수 형태로 분석하는 문제이다.
- 예로 아래 그림과 같이 방의 개수, 면적, 집 종류, 역과의 거리 데이터를 이용해 집값을 예측하는 문제가 회귀 문제이다.
이진 분류 모델
- 이진 분류 문제는 동전 던지기를 할 때 앞면과 뒷면이 나올 확률을 예측하는 문제와 같다.
- 동전의 앞면과 뒷면이 나올 확률분포는 베루누이 분포로 정의되므로
- 이진 분류 모델은 베르누이 분포를 예측하는 모델로 정의할 수 있다.
베르누이 분포
- 베르누이 분포는 두 종류의 사건이 발생할 확률을 나타내며 다음과 같은 식으로 정의된다.
확률 모델 정의
출력 계층의 활성 함수
- 폐의 엑스레이 사진으로 COVID19의 감염 여부를 판별하는 이진 분류 모델을 만든다고 해보자.
- 모델은 폐의 엑스레이 사진을 입력받아서 COVID19에 감염되었을 확률 u를 예측한다.
- 이때 신경망 모델은 COVID19에 감염되었을 수치를 점수 또는 로짓으로 예측하고 이를 활성 함수를 통해 베르누이 확률분포의 파라미터 n로 변환한다.
- 이때 사용하는 활성 함수가 시그모이드 함수이다.
다중 분류 모델
- 다중 분류 문제는 주사위를 굴렸을 때 각 면이 나올 확률을 예측하는 문제와 같다.
- 주사위의 각 면이 나올 확률분포는 카테고리 분포로 정의됨
- 다중 분류 모델은 카테고리 분포를 예측하는 모델로 정의할 수 있다.
카테고리 분포
- 카테고리 분포는 여러 종류의 사건이 발생할 확률을 나타내며 아래와 같은 식으로 정의한다.
- 카테고리 분포는 베르누이 분포를 일반화한 분포로 K개 사건의 확률을 표현한다.
확률 모델 정의
- 다중 분류 문제를 확률 모델로 정의해 보면 다음과 같다.
출력 계층의 활성 함수
- 고양이 사진을 입력받아서 분류하는 다중 분류 모델을 만든다호 해보면
- 모델은 고양이 사진을 입력받아 다람쥐, 고양이, 강아지 와 같은 K개의 클래스에 속할 확률인 n를 예측한다.
- 이 때 신경망 모델은 각 클래스에 속할 수치인 점수 또는 로짓을 실수 벡터로 출력하고 이를 활성 함수를 통해 카테고리 분포의 확률 벡터 n로 변환한다.
- 이 때 사용하는 활성 함수가 소프트 맥스 함수이다.
소프트맥스 함수
- 소프트맥스 함수는 실수 벡터를 확률 벡터로 변환한다
- 실수 벡터의 각 요소는 [0,1] 범위로 변환되고 각 요소의 합은 1이 된다.
- 그래서 신경망의 출력 계층에서 실수 벡터를 카테고리 확률분포의 확률 벡터로 변환할 때 사용한다.
- 소프트맥스 함수는 다음과 같이 정의할 수 있다.
회귀 모델
- 회귀 문제는 여러 독립 변수와 종속 변수의 관계를 연속 함수 형태로 분석하는 문제
- 관측 항목을 독립 변수와 종속 변수로 나누고 이들의 관계를 함수 형태로 분석한다.
- 데이터를 관측할 때 발생하는 관측 오차 또는 실험 오차는 가우시안 분포로 정의되므로, 회귀 문제는 가우시안 분포를 예측하는 모델로 정의할 수 있다.
가우시안 분포
- 가우시안 분포는 평균을 중심으로 대칭적인 종 모양의 사건이 발생할 확률을 나타내며 아래와 같은 식으로 정의한다.
회귀 모델 정의
- 회귀 문제를 확률 모델로 정의해보자.
회귀 모델
출력 계층의 활성 함수
- 집값을 결정하는 요인으로 구성된 방의 개수, 면적, 집 종류, 역과의 거리 데이터로 집값을 예측하는 회귀 모델을 만든다고 해보자.
- 모델은 방의 개수, 면적, 집 종류, 역과의 거리 데이터를 입력받아서 집값의 가우시안 분포의 평균인 n을 예측함
- 회귀 모델의 경우 예측된 평균과 분산이 바뀌면 안 되기 때문에 항등 함수를 활성 함수로 사용한다.
항등함수
- 항듬 함수는 입력값을 그대로 출력하는 함수이다.
- 기울기가 1인 직선을 나타내는 선형 함수로 정의한다.
입력 계층
- 순방향 신경망의 입력 계층은 입력 데이터를 벡터 형태로 받아서 다음 계층에 전달하는 역할을 한다.
- 따라서 입력 데이터가 크기가 n개인 벡터라면 입력 계층은 n개의 뉴런으로 정의된다.
활성 함수
- 은닉 계층을 걸계할 때 선택할 수 있는 활성 함수는 매우 다양하다.
- 활성 함수는 크게 S자형 곡선 형태의 시그모이드 계열과 구간 선형 함수로 정의되는 ReLU계열로 구분할 수 있다.
- 다음 그림에서 시그모이드 계열은 시그모이드, 하이퍼볼릭 탄젠트가 있으며, ReLU 계열은 ReLU, 리키 ReLU, 맥스아웃, ELU가 포함된다.
728x90
'ML' 카테고리의 다른 글
BDA_딥러닝의 이해반_250330 (0) | 2025.03.31 |
---|---|
BDA_딥러닝의 이해반_0323_복습코드 (0) | 2025.03.28 |
로지스틱 회귀 모델 (1) | 2024.07.04 |
비지도 학습 (0) | 2024.07.04 |
머신러닝 알고리즘 정리 (0) | 2024.07.04 |