1

키 포인트 감지에 신경 네트워크를 사용하는 방법에 대한 자습서를 몇 편 읽었습니다. 입력 (이미지)의 경우 255로 나누는 것이 일반적이라는 것을 알았습니다 (값은 0에서 255 사이이므로 [0,1]로 정규화). 그러나 목표 (X/Y) 좌표에서 [-1,1]로 정규화하는 것이 더 일반적이라는 것을 알았습니다. 이 불균형의 이유.[0,1] 대 [-1,1]로 정규화

예 : http://danielnouri.org/notes/2014/12/17/using-convolutional-neural-nets-to-detect-facial-keypoints-tutorial/

X = np.vstack(df['Image'].values)/255. # scale pixel values to [0, 1] 
y = (y - 48)/48 # scale target coordinates to [-1, 1] 
+1

이 질문은 https://stats.stackexchange.com/에서 질문해야합니다. 실제로는 tensorflow 또는 keras 기능에 아무런 관련이 없습니다 – DJK

+0

실제로 기계 학습 및 심층 학습에 대한 기술에 의존하지 않는 질문이 더 좋습니다 [Cross Validated] (// stats.stackexchange.com) 또는 [Data Science SE] (// datascience.stackexchange.com)에서이 분야 전문가들이 있습니다. –

답변

0

제가 일반 신경망 화상 정규화를위한 가장 일반적인 생각은 화상의 평균을 제거하고 그 표준 편차로 나눈

X = (X - mean_dataset)/std_dataset 

생각 핵심 포인트 탐지 문제가 너무 다른해서는 안됩니다.

성능 차이를 보는 것이 흥미로울 수 있습니다. 제 생각에 평균을 제거하고 std ([-1,1])로 나누면 [0,1] 정규화에 비해 더 빨리 수렴됩니다.

모델의 바이어스가 작아 때문에 그들이 0

0

날에 따르면에 초기화하는 경우에 도달하는 데 시간이 덜 필요하기 때문에, 기술적으로 어떻게이 정상화되는에 많은 차이가 안 값.

그러나 이러한 것들은 자금 세탁 기술에서 중요합니다.

픽셀 범위를 (0에서 255)에서 (0에서 1)로 표준화하면 수렴 속도가 빨라집니다. 여기서 -1과 1 사이의 범위를 지정할 수도 있습니다. 나는 많은 문제에서이 범위를 사용했다. 그런 문제는 없습니다.

하지만 출력이 약간 까다 롭습니다. 범위 0에서 1을 사용하는 것은 사용중인 활성화 기능 때문에 더 좋은 아이디어가 아닙니다. ReLU는 max (0, x)이며 음수 값을 입력 할 때 더 잘 작동합니다. 그것이 relu의 요점입니다. 또한 tanh 범위는 -1과 1 사이의 값입니다. 남은 유일한 선택은 relu 및 tanh 기능에 비해 잘 수행하지 못하는 sigmoid 기능을 사용하는 것입니다. Sigmoid의 문제는 그라디언트가 사라지는 현상이며 0에 집중되지 않아서 가중치에 대해 약간 지그재그로 그라데이션 업데이트됩니다. 당신은 그것을 here 찾을 수 있습니다.

관련 문제