딥 러닝에서 가중치와 편견은 무엇입니까?


21

Tensorflow 웹 사이트에서 기계 학습을 배우기 시작했습니다. 나는 딥 러닝 프로그램이 따르는 흐름에 대한 매우 기초적인 이해를 개발했습니다 (이 방법은 저에게 책과 큰 기사를 읽는 대신 빨리 배우게합니다).

내가 겪은 몇 가지 혼란스러운 것들이 있습니다. 그중 2 가지가 있습니다 :

  1. 편견
  2. 무게

tensorflow 웹 사이트의 MNIST 튜토리얼에서 이미지에 특정 패턴이 존재한다는 증거를 찾기 위해 바이어스와 가중치가 필요하다고 언급했습니다. 내가 이해하지 못하는 것은 바이어스와 무게 값이 어디서 어떻게 결정되는지입니다.

이러한 값을 제공해야합니까, 아니면 TensorFlow 라이브러리가 학습 데이터 세트를 기반으로 이러한 값을 자동으로 계산합니까?

또한 딥 러닝에서 내 속도를 높이는 방법에 대한 제안을 제공 할 수 있다면 좋을 것입니다!

텐서 플로우 초보자 튜토리얼


4
으로 매개 변수 (A)의 통계 모델 , 그들은되는 학습 또는 추정 최소화하여 손실 함수 데이터에 따라 달라집니다. 이것이 바로 머신 러닝에 관한 것입니다. 이 pedogogical 방법을 따르면 많은 질문을 할 것입니다. Coursera에서와 같은 MOOC를 사용하여 합리적인 순서로 사물을 배울 수 있습니다.
Emre

이것은 매우 기본적이므로 @Emre 제안과 같은 과정을 수행해야합니다.
HelloWorld

답변:


17

수학적으로 말하기. 당신이 모델이라고 상상해보십시오 (그런 종류가 아닙니다, 그림 8)

바이어스 는 단순히 당신이 얼마나 편견인지, 이제는 나이지리아 인이고, "국적이 가장 아름다운 여성을 가지고있는 사람"이라는 질문이 나옵니다. 따라서 공식은 입니다.Y=WX+nigerian

그래서 당신은 무엇을 이해합니까? 편견은 당신과 같은 모델의 사전 가정입니다.

논리적으로 말하면, 무게에 관해서는 Weight는 Gradient (선형 대수)입니다.

그라디언트 란 무엇입니까? 선형 함수의 가파른 부분입니다.

선형 그래디언트를 매우 가파르게 만드는 것은 무엇입니까 (높은 양의 값)?

X (입력)의 작은 변화로 인해 Y 축 (출력)에서 큰 차이가 발생하기 때문입니다. 따라서 더 이상 모델이 아니라 훌륭한 수학자 (자신의 자아) 또는 컴퓨터가이 기울기를 찾으려고 시도합니다. 차이점은 연필과 그래프 북을 사용하여 이것을 찾을 수 있지만 블랙 박스는 전자 마술을 레지스터와 함께 사용한다는 것입니다.

머신 러닝 프로세스에서 컴퓨터 또는 데이터 포인트 전체에 많은 직선 또는 선형 함수를 그리려고 시도합니다.

왜 많은 직선을 그리려고합니까?

그래프 북 / 컴퓨터 메모리에서 적절하게 맞는 선을 보려고합니다.

본인이나 컴퓨터가 적합한 라인을 어떻게 알 수 있습니까?

중고등 학교에서는 데이터 포인트 전체에 선을 그려서 모든 데이터 포인트의 중간을 완벽하게 가로 지르는 선을 육안으로 확인하는 방법을 배웠습니다. (AI 인공 지능을 잊어 버리십시오. . 그러나 컴퓨터의 경우 데이터 점을 향한 각 선의 표준 편차와 분산을 시도합니다. 편차가 가장 적은 라인 (때로는 오류 함수라고 함)이 선택됩니다.

멋있는! 그래서 그리고 무슨 일이

해당 선의 기울기가 계산되고 학습 문제의 가중치가 계산되었다고 가정합니다.

thats는 기계 학습에 대한 기본적인 이해와 고등학생 그래프 작성 그래프


13

코스에 대한 Andrew Ng의 머신 러닝 과정을 고려해야한다는 귀하의 질문에 대한 의견에 동의합니다 . 이것은 머신 러닝의 기본에 관한 기본적인 질문입니다. 따라서이 답변의 수학을 다루지 않으므로 해당 과정을 포함한 많은 곳에서 수학을 얻을 수 있습니다.

바이어스 및 무게 값은 어디서 어떻게 결정됩니까?

가중치와 바이어스는 모델의 학습 가능한 매개 변수입니다. 신경망뿐만 아니라 선형 회귀와 같은 관련 모델에서 동일한 이름으로 나타납니다. 대부분의 머신 러닝 알고리즘에는 이와 같은 학습 가능한 파라미터가 포함되어 있습니다.

학습을 시작하기 전에 이러한 매개 변수의 값은 무작위로 초기화됩니다 (이로 인해 모든 매개 변수가 단일 값으로 수렴되지 않습니다). 그런 다음 훈련 중에 데이터가 표시되면 올바른 출력 값을 갖도록 조정됩니다.

이러한 값을 제공해야합니까, 아니면 TensorFlow 라이브러리가 학습 데이터 세트를 기반으로 이러한 값을 자동으로 계산합니까?

훈련 전에 값을 제공 할 필요는 없지만, 각 레이어의 크기에 의해 제어되는 신경망에서 몇 개의 매개 변수가 필요한지 등을 결정할 수 있습니다. TensorFlow는 훈련 중에 값을 자동으로 계산합니다. 이미 학습 된 모델이 있고 재사용하려는 경우 파일에서 직접로드하여 값을 직접 설정하려고합니다.

튜토리얼의 가중치 및 바이어스 변경을 처리하는 특정 코드는 다음과 같습니다.

train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)

이:

sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})

첫 번째 줄은 가중치와 값이 어떻게 변경되는지 정의합니다. 이것을 문자 그대로 "그라데이션 디센트 옵티 마이저를 사용하여 제공된 데이터의 교차 엔트로피를 줄이는 학습 기능 정의"로 읽을 수 있습니다.

두 번째 줄은 특정 데이터 조각으로 해당 함수를 호출합니다. 이 두 번째 라인이 실행될 때마다 가중치와 바이어스 값이 조정되어 신경망이 값을 각 값 의 올바른 연관에 조금 더 가깝게 출력 합니다.yx


8

무게 -무게는 연결 강도입니다. 입력을 늘리면 출력에 얼마나 많은 영향을 미칩니다.

가중치가 0에 가까우면이 입력을 변경하면 출력이 변경되지 않습니다. 많은 알고리즘은 네트워크를 단순화하기 위해 가중치를 자동으로 0으로 설정합니다.

편차 -예측이 실제 값과 얼마나 멀리 떨어져 있는지를 의미합니다. 일반적으로 파라 메트릭 알고리즘은 바이어스가 높기 때문에 배우기 쉽고 이해하기 쉽지만 일반적으로 유연성이 떨어집니다. 결과적으로 알고리즘 편향의 단순화 가정을 충족시키지 못하는 복잡한 문제에 대해서는 예측 성능이 떨어집니다.

낮은 바이어스 : 대상 함수의 형태에 대한 더 많은 가정을 제안합니다.

High-Bia s : 대상 함수의 형태에 대한 가정이 적습니다.


3
OP는 신경망의 바이어스 파라미터에 대해 묻고있었습니다. 편견에 대한 당신의 정의는 괜찮지 만 질문에 대답하지 마십시오.
닐 슬레이터
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.