기계학습 총결산~ 포프테론에서 딥러닝까지~

Deep Learning-Python에서 학습한 딥러닝의 이론과 실현을 0부터 시작합니다.을 읽었기 때문에 기계 학습을 대충 정리했다.
최대한 공식을 사용하지 않는 느낌으로 설명할 테니 인상을 사로잡았으면 좋겠어요.

기계 학습


기계학습은 입력 데이터에서 반복적으로 학습을 통해 패턴을 학습하고 새로운 데이터에 대해서도 답을 얻을 수 있다.
기계 학습의 문제는 크게 데이터에서 수치를 예측하는'회귀 문제'와 데이터가 어느 종류에 속하는지의'분류 문제'두 가지로 나눌 수 있다.
어떤 문제에 대한 적당한 매개 변수를 배우기 위해 학습용 데이터를 준비하면 기본 알고리즘을 변경하지 않고 다양한 문제를 해결할 수 있다.

기계 학습 프로그램


기계 학습에서 먼저 학습 모형의 구축을 진행해야 한다.
학습 모형은 많은 공식을 포함하는 모형이다.
공식에는 파라미터가 포함되어 있으며, 이러한 파라미터를 결정하는'학습'을 한 후, 학습된 모델을 이용하여 새로운 문제를 풀는'추리'를 한다.

학습 매개 변수


머신러닝의 학습은 입력 데이터에서 학습 모델 내의 매개 변수를 결정하는 것을 가리킨다.
인간은 문제에 대해 모든 파라미터를 정확하게 설정할 수 없기 때문에 컴퓨터에서 공부해 주십시오(일부 초파라미터를 제외하고).

손실 함수와 사다리법


손실 함수는 학습 모델의 성능이 떨어지는 것을 평가하는 함수다.
손실 함수의 결과가 0에 가까울수록 학습 모델은 적당한 학습을 할 수 있다.
따라서 학습 중에 손실 함수의 결과를 작게 하기 위해 파라미터를 변화시킨다.
사다리꼴을 사용하여 매개변수를 변경합니다.
사다리꼴법은 점차적으로 파라미터를 업데이트하여 손실 함수의 사다리(미분)를 작게 한다.
미분은 함수의 변화율이기 때문에 미분이 0인 곳은 함수의 최소값일 수 있다.
이때 미분치에 대해 어느 정도 업데이트 파라미터의 학습률이라는 초파라미터를 부여합니까?
학습률은 크든 작든 적당한 학습을 집행할 수 없다.
미분은 매개 변수를 미소하게 변화시킬 때 함수의 변화량이다.
구하는 방법으로서 실제적으로 매개 변수를 미소하게 변화시켜 계산한 결과의 차분의 수치 미분이 있다.
그러나 더욱 효과적이고 빠른 방법으로 일반적으로 오차 역방향 전파법(역방향 전파)을 사용한다.

오차 역방향 전파법


미분은 매개 변수가 변화할 때 최종 결과가 어느 정도까지 변화하는지의 영향도라고 볼 수 있다.
그러나 기계 학습 모델에서는 공식 간의 복잡한 영향으로 미분을 구하기 어렵다.
따라서 우리는 공식을 분해하여 모든 최소 단위의 입력이 출력에 얼마나 큰 영향을 미치는지 국부 미분식을 구할 것이다.
이를 출력 측면에서 역방향으로 거슬러 올라가면 전체적인 미분을 구할 수 있다.
출력에서 입력까지 모두 반대 방향으로 계산되기 때문에 반전파라고 부른다.

그림의 잉여는 정방향 계산이고 적자는 역방향 계산(각 영향)이다.
예를 들어 100개 항목이 1 증가하여 101이 되면 최종 결과는 604이므로 100개 항목의 영향도는 4이다.

학습 모드


기계 학습의 학습 모형은 각양각색이지만 깊이 학습과 관련된 학습 모형을 설명한다.
뒤로 갈수록 복잡한 알고리즘이지만 정밀도도 그만큼 높아진다.

브로콜리


입력 및 매개변수의 적과 값이 임계값보다 작거나 같으면 포세틀론은 출력 0이고 임계값보다 크면 출력 1의 간단한 모델입니다.
많은 경우, 한도값 $\theta$를 편차 $-b$로 대체하고, 계산 결과가 0 이상이거나 0 이상이면 출력을 변경합니다.

하나의 입자류만 간단한 모형을 표현할 수 있기 때문에 복잡한 모형을 표현하기 위해 여러 개의 입자류를 중첩해야 한다.

신경 네트워크


신경 네트워크의 구조 자체는 절류관과 매우 유사하다.

신경 네트워크와 절류관의 가장 큰 차이는 활성화 함수다.
활성화 함수 $h$는 입력 신호와 파라미터의 적과 결과 $a$를 다음 입력 $z$로 변환하는 함수입니다.

포세프트론에서 적화의 결과가 0 이상일 때 1, 기타 상황에서 0이기 때문에 활성화 함수에서 단계 함수를 사용했다.

신경 네트워크에서는 시그모드 함수와 ReLU 함수 등 미분 (엄격히 말하면 ReLU 함수는 미분 가능이 아니다) 함수를 사용하여 더욱 고급 학습을 할 수 있다.


출력층의 활성화 함수만 소프트맥스 함수 등 중간층과 다른 함수를 사용한다.
소프트 맥스 함수는 각 출력 결과를 백분율로 바꾸는 함수이다.
분류 문제에서 출력층의 모든 노드는 입력에 속하는 클래스에 대응하기 때문에 소프트맥스 함수의 모든 결과는 이 클래스에 속하는 확률을 나타낸다.
그러나 분류 문제의 경우 확률이 가장 높은 클래스만 알면 되는 경우가 많기 때문에 소프트맥스 함수를 사용하지 않고 출력층의 결과에서 가장 큰 클래스를 추출하는 처리도 있다.

권적 신경 네트워크


신경 네트워크에서 두 가지 유형의 층이 겹쳐져 있다. 즉, 모든 인접 층의 입력이 합쳐진'모두 합쳐짐'($a$의 처리를 구하는 것) 과 그 결과를 다음 층의 입력으로 바꾸는'활성화'이며, 마지막에는'소프트맥스'함수를 사용하여 최종 출력을 얻는다.

권적신경망에 권적과 수영장이라는 층을 넣었다.

입력층에 가까운 부분에 볼륨과 활차를 사용합니다.
볼륨은 필터를 각 값에 적용합니다.왼쪽 상단부터 필터와 값의 위치가 대응하여 축적하고 엇갈리면서 응용하여 최종 결과를 얻는다.

그림에서 보듯이 필터를 사용하면 데이터의 구조를 바꿀 수 있다.
따라서 입력 데이터를 미리 0 등 고정값으로 채우는 처리를 통해 대부분 데이터 구조를 바꾸지 않는 충전 처리를 한다.
수영장은 데이터 구조를 바꾸는 처리다.
여러 가지 방법이 있지만 선택 범위에서 최대치를 사용하는 MAX 루프가 자주 사용됩니다.

사×4의 데이터, 2×MAX 휠 2를 적용하면 2×2의 데이터.
일반적인 신경 네트워크에서는 입력된 데이터의 값만 처리하지만 권적 신경 네트워크에서도 데이터의 위치를 고려한다.
이미지 등 픽셀 간의 위치와 밀접한 관련이 있는 데이터도 많기 때문에 권적신경 네트워크를 사용하면 정밀도를 높일 수 있다.

딥 러닝


딥러닝은 심층적인 신경 네트워크다.
여러 가지 기교를 동시에 사용함으로써 정밀도가 더 좋은 네트워크를 구축할 수 있다.
예를 들어, ResNet이라고 하는 네트워크는 150 레이어 이상의 중첩 네트워크입니다.
층이 증가함에 따라 정밀도는 증가하지만 집행 시간이 필요하다.
따라서 GPU 계산과 병행 처리를 통해 처리를 가속화하는 방법(구글의 TensorFlow 등)을 연구했다.

좋은 웹페이지 즐겨찾기