이번역페이지는최신내용을담고있지않습니다。최신내용을문으로보려면여기를클릭하십시오。
사용자지정훈련루프,손실함수및신경망정의
대부분의딥러닝작업의경우,사전훈련된신경망을사용하고이를사용자자신의데이터에맞게적응시킬수있습니다。새로운영상세트를분류할수있도록전이학습을사용하여컨벌루션신경망을다시훈련시키는방법을보여주는예제는새로운상을분류하도록딥러닝신경망훈련시키기항목을참조하십시오。또는layerGraph
객체를trainNetwork
함수 및trainingOptions
함수와함께사용하여신경망을처음부터만들고훈련시킬수있습니다。
trainingOptions
함수가작업에필요한훈련옵션을제공하지않는다면자동미분을사용하여사용자지정훈련루프를만들수있습니다。자세한내용은사용자지정훈련루프를위한딥러닝신경망정의하기항목을참조하십시오。
深度学习工具箱™가작업에필요한계층을제공하지않는다면(손실함수를지정하는출력계층포함)사용자지정계층을만들수있습니다。자세한내용은사용자지정딥러닝계층정의하기항목을참조하십시오。출력계층을사용하여지정할수없는손실함수의경우,사용자지정훈련루프안에손실을지정할수있습니다。자세한내용은손실함수지정하기항목을참조하십시오。계층그래프를사용하여만들수없는신경망의경우사용자지정신경망을함수로정의할수있습니다。자세한내용은신경망을모델함수로정의하기항목을참조하십시오。
어느훈련방법을어느작업에사용해야하는지에대한자세한내용은用MATLAB训练深度学习模型항목을참조하십시오。
사용자지정훈련루프를위한딥러닝신경망정의하기
신경망을dlnetwork
객체로정의하기
대부분의작업에서는trainingOptions
함수와trainNetwork
함수를사용하여훈련알고리즘세부정보를제어할수있습니다。trainingOptions
함수가작업에필한옵션을제공하지않는다면(예:사용자지정학습률일정)dlnetwork
객체를사용하여자체사용자지정훈련루프를정의할수있습니다。dlnetwork
객체를사용하면계층그래프로지정된신경망을자동미분을사용하여훈련시킬수있습니다。
계층그래프로지정된신경망의경우,계층그래프에서직접dlnetwork
함수를사용하여dlnetwork
객체를만들수있습니다。
Net = dlnetwork(lgraph);
dlnetwork
객체가지원하는계층목록은dlnetwork
페이지의万博1manbetx支持层섹션을참조하십시오。사용자지정학습률일정을사용하여신경망을훈련시키는방법을보여주는예제는使用自定义训练循环训练网络항목을참조하십시오。
신경망을모델함수로정의하기
계층그래프를사용하여만들수없는아키텍처의경우(예:공유가중치가필요한샴신경망),모델을(日元…,YM] =模型(参数,X1,…,XN)
형식의함수로정의할수있습니다。여기서参数
는신경망파라미터를포함하고,X1,…,XN
은N
개의모델입력값에대한입력데이터에대응되고,日元…,
은米
개의모델출력값에대응됩니다。함수로정의된딥러닝모델을훈련시키려면사용자지정훈련루프를사용하십시오。예제는利用模型函数训练网络항목을참조하십시오。
딥러닝모델을함수로정의할때는계층가중치를수동으로초기화해야합니다。자세한내용은初始化模型函数的可学习参数항목을참조하십시오。
사용자지정신경망을함수로정의한경우모델함수는자동미분을지원해야합니다。다음과같은딥러닝연산을사용할수있습니다。여기에나와있는함수는일부에불과합니다。dlarray
입력값을지원하는함수의전체목록은支持dlarray的函数列表万博1manbetx항목을참조하십시오。
함수 | 설명 |
---|---|
注意 |
어텐션연산은가중곱셈연산을사용하여입력값의일부에집중하여연산을수행합니다。 |
avgpool |
평균값풀링연산은입력값을풀링영역으로나누고각영역의평균값을계산하여다운샘플링을수행합니다。 |
batchnorm |
배치정규화연산은각채널에대한모든관측값에서입력데이터를독립적으로정규화합니다。컨벌루션신경망의훈련속도를높이고신경망초기화에대한민감도를줄이려면컨벌루션연산과비선형계층(예:线性整流函数(Rectified Linear Unit) )사이에배치정규화를사용하십시오。 |
crossentropy |
교차엔트로피연산은단일레이블및다중레이블분류작업에서신경망예측과목표값사이의교차엔트로피손실을계산합니다。 |
crosschannelnorm |
교차채널정규화연산은여러채널의국소응답을사용하여각활성화를정규화합니다。교차채널정규화는일반적으로线性整流函数(Rectified Linear Unit) 연산을따릅니다。교차채널정규화는국소응답정규화라고도합니다。 |
ctc |
CTC연산은정렬되지않은시퀀스간의연결주의적시간분류(CTC:联结主义时间分类)손실을계산합니다。 |
dlconv |
컨벌루션연산은입력데이터에슬라이딩필터를적용합니다。딥러닝컨벌루션,그룹화된컨벌루션및채널별로분리가능한컨벌루션에dlconv 함수를사용합니다。 |
dlode45 |
신경망상미분방정식(ode)연산은지정된ode의해를반환합니다。 |
dltranspconv |
전치된컨벌루션연산은특징맵을업샘플링합니다。 |
嵌入 |
임베드연산은숫자형덱스를숫자형벡터로변환합니다。여기서덱스는이산데이터에대응됩니다。임베딩을사용하여直言형값이나숫자형벡터와같은이산데이터를매핑하십시오。 |
fullyconnect |
완전연결연산은입력값에가중치행렬을곱한다음편향벡터를더합니다。 |
gelu |
GELU(高斯误差线性单元)활성화연산은가우스분포의확률에따라입력값에가중치를부여합니다。 |
groupnorm |
그룹정규화연산은각관측값에대해그룹화된채널서브셋에서입력데이터를독립적으로정규화합니다。컨벌루션신경망의훈련속도를높이고신경망초기화에대한민감도를줄이려면컨벌루션연산과비선형계층(예:线性整流函数(Rectified Linear Unit) )사이에그룹정규화를사용하십시오。 |
格勒乌 |
게이트순환유닛(格勒乌)연산을사용하면신경망이시계열및시퀀스데이터에서시간스텝간의종속성을학습할수있습니다。 |
休伯 |
Huber연산은회귀작업에서신경망예측과목표값사이의Huber손실을계산합니다。“TransitionPoint” 옵션이1이면smooth-L1손실이라고도합니다。 |
instancenorm |
인스턴스정규화연산은각관측값에대해각채널에서입력데이터를독립적으로정규화합니다。컨벌루션신경망의훈련수렴을개선하고신경망하이퍼파라미터에대한민감도를줄이려면컨벌루션연산과비선형연산(예:线性整流函数(Rectified Linear Unit) )사이에marketing스턴스정규화를사용하십시오。 |
l1loss |
l1손실연산은신경망예측값과목` ` ` `값이주어진경우1손실을계산합니다。减少 옵션이“和” 이고NormalizationFactor 옵션이“批大小” 일때계산된값을평균절대오차(mae)라고합니다。 |
l2loss |
l2손실연산은신경망예측값과목` ` ` `값이주어진경우2손실(l2노름의제곱에기반함)을계산합니다。减少 옵션이“和” 이고NormalizationFactor 옵션이“批大小” 일때계산된값을평균제곱오차(mse)라고합니다。 |
layernorm |
계층정규화연산은각관측값에대해모든채널에서입력데이터를독립적으로정규화합니다。순환다층퍼셉트론신경망의훈련속도를높이고신경망초기화에대한민감도를줄이려면학습가능한연산(예:LSTM완전연결연산)다음에계층정규화를사용하십시오。 |
leakyrelu |
漏水的ReLU(修正线性单元)계층활성화연산은0보다작은모든입력값에고정된스칼라인자를곱하는비선형임계값연산을수행합니다。 |
lstm |
장단기기억(LSTM)연산을사용하면신경망이시계열및시퀀스데이터에서시간스텝간의장기종속성을학습할수있습니다。 |
maxpool |
최댓값풀링연산은입력값을풀링영역으로나누고각영역의최댓값을계산하여다운샘플링을수행합니다。 |
maxunpool |
최댓값언풀링연산은최댓값풀링연산의출력값을업샘플링하고0으로채워서언풀링합니다。 |
均方误差 |
평균제곱오차의절반연산은회귀작업에서신경망예측과목표값사이의평균제곱오차의절반을계산합니다。 |
onehotdecode |
在一个炎热디코딩연산은분류신경망의출력값과같은확률벡터를분류레이블로디코딩합니다。 입력값 |
线性整流函数(Rectified Linear Unit) |
ReLU(修正线性单元)활성화연산은0보다작은모든입력값을0으로설정하는비선형임계값연산을수행합니다。 |
乙状结肠 |
시그모이드활성화연산은입력데이터에시그모이드함수를적용합니다。 |
softmax |
소프트맥스활성화연산은입력데이터의채널차원에소프트맥스함수를적용합니다。 |
손실함수지정하기
사용자지정훈련루프를사용할때는모델기울기함수의손실을계산해야합니다。신경망가중치를업데이트하기위해기울기를계산할때손실값을사용하십시오。손실을계산하기위해다음함수를사용할수있습니다。
함수 | 설명 |
---|---|
softmax |
소프트맥스활성화연산은입력데이터의채널차원에소프트맥스함수를적용합니다。 |
乙状结肠 |
시그모이드활성화연산은입력데이터에시그모이드함수를적용합니다。 |
crossentropy |
교차엔트로피연산은단일레이블및다중레이블분류작업에서신경망예측과목표값사이의교차엔트로피손실을계산합니다。 |
l1loss |
l1손실연산은신경망예측값과목` ` ` `값이주어진경우1손실을계산합니다。减少 옵션이“和” 이고NormalizationFactor 옵션이“批大小” 일때계산된값을평균절대오차(mae)라고합니다。 |
l2loss |
l2손실연산은신경망예측값과목` ` ` `값이주어진경우2손실(l2노름의제곱에기반함)을계산합니다。减少 옵션이“和” 이고NormalizationFactor 옵션이“批大小” 일때계산된값을평균제곱오차(mse)라고합니다。 |
休伯 |
Huber연산은회귀작업에서신경망예측과목표값사이의Huber손실을계산합니다。“TransitionPoint” 옵션이1이면smooth-L1손실이라고도합니다。 |
均方误差 |
평균제곱오차의절반연산은회귀작업에서신경망예측과목표값사이의평균제곱오차의절반을계산합니다。 |
ctc |
CTC연산은정렬되지않은시퀀스간의연결주의적시간분류(CTC:联结主义时间分类)손실을계산합니다。 |
또는损失= myLoss(Y,T)
형식의함수를만들어서사용자지정손실함수를사용할수있습니다。여기서Y
와T
는각각신경망예측과목값이고,损失
는반환된손실입니다。
사용자지정손실함수를사용하여영상을생성하는생성적적대신경망(GAN)을훈련시키는방법을보여주는예제는생성적적대신경망(gan)훈련시키기항목을참조하십시오。
자동미분을사용하여학습가능한파라미터업데이트하기
사용자지정훈련루프를사용하여딥러닝모델을훈련시킬때소프트웨어는학습가능한파라미터에대한손실을최소화합니다。손실을최소화하기위해,학습가능한파라미터에대한손실의기울기를사용합니다。자동미분을사용하여이러한기울기를계산하려면모델기울기함수를정의해야합니다。
모델손실함수정의하기
dlnetwork
객체로지정된모델의경우,[loss,gradients] = modelLoss(net,X,T)
형식의함수를만듭니다。여기서网
은신경망이고,X
는신경망입력값이고,T
는목값을포함하고,损失
와梯度
는각각반환된손실과반환된기울기입니다。선택적으로,기울기함수에추가인수를전달하거나(예:손실함수에추가정보가필요한경우)추가인수를반환할수있습니다(예:업데이트된신경망상태)。
함수로지정된모델의경우,[loss,gradients] = modelLoss(parameters,X,T)
형식의함수를만듭니다。여기서参数
는학습가능한파라미터를포함하고,X
는모델입력값이고,T
는목값을포함하고,损失
와梯度
는각각반환된손실과반환된기울기를포함합니다。선택적으로,기울기함수에추가인수를전달하거나(예:손실함수에추가정보가필요한경우)추가인수를반환할수있습니다(예:업데이트된모델상태)。
사용자지정훈련루프를위해모델손실함수를정의하는것에대한자세한내용은定义自定义训练循环的模型损失函数항목을참조하십시오。
학습가능한파라미터업데이트하기
자동미분을사용하여모델손실함수를평가하려면,자동미분이활성화된상태로함수를평가하는dlfeval
함수를사용하십시오。dlfeval
의첫번째입력값으로는함수핸들로지정된모델손실함수를전달합니다。이어지는입력값으로는모델손실함수에필한변수를전달합니다。dlfeval
함수의출력값으로는모델손실함수와동일한출력값을지정합니다。
기울기를사용하여학습가능한파라미터를업데이트하기위해다음함수를사용할수있습니다。
함수 | 설명 |
---|---|
adamupdate |
亚当(적응적모멘트추정)을사용하여파라미터업데이트 |
rmspropupdate |
RMSProp(RMS전파)를사용하여파라미터업데이트 |
sgdmupdate |
Sgdm(모멘텀을사용한확률적경사하강법)을사용하여파라미터업데이트 |
dlupdate |
사용자지정함수를사용하여파라미터업데이트 |
참고 항목
dlarray
|dlgradient
|dlfeval
|dlnetwork