Scientific electronic library. Will, ang mga function nito

Ano ang ginagawa ng isang artipisyal na neuron? Sa simpleng salita, kinakalkula nito ang timbang na kabuuan ng mga input nito, nagdaragdag ng bias at nagpapasya kung ang halagang ito ay dapat na hindi isama o gamitin pa (oo, gumagana ang activation function na ganoon, ngunit mag-ayos tayo).

Pag-andar ng pag-activate tinutukoy ang halaga ng output ng neuron depende sa resulta ng timbang na kabuuan ng mga input at ang halaga ng threshold.

Isaalang-alang ang isang neuron:

Ngayon ang kahulugan Y maaaring maging anuman sa hanay mula -infinity hanggang +infinity. Sa katotohanan, ang neuron ay hindi alam ang hangganan pagkatapos ng pag-activate ay sumusunod. Sagutin natin ang tanong kung paano tayo magpapasya kung dapat i-activate ang isang neuron (tinitingnan natin ang pattern ng pagpapaputok dahil maaari tayong gumuhit ng pagkakatulad sa biology. Ganito gumagana ang utak, at ang utak ay isang magandang indikasyon ng gawain ng isang complex at matalinong sistema).

Para sa layuning ito, nagpasya kaming magdagdag ng activation function. Sinusuri nito ang halaga na ginawa ng neuron Y sa paksa kung dapat ba relasyong panlabas ituring ang neuron na ito bilang aktibo, o maaari itong balewalain.

Step activation function

Ang unang bagay na pumapasok sa isip ay ang tanong kung ano ang itinuturing na hangganan ng activation para sa activation function. Kung ang halaga Y mas malaki kaysa sa isang tiyak na halaga ng threshold, isinasaalang-alang namin ang neuron upang ma-activate. Kung hindi, sinasabi namin na ang neuron ay hindi aktibo. Dapat gumana ang scheme na ito, ngunit unahin natin itong gawing pormal.

  • Function A = activated kung Y > limit, kung hindi ay hindi.
  • Isa pang paraan: A = 1 kung Y > border, kung hindi A = 0.

Ang function na nilikha namin ay tinatawag na isang step function. Ang function na ito ay ipinapakita sa figure sa ibaba.

Kinukuha ng function ang halaga 1 (activate) kapag Y > 0(hangganan), at ang halaga ay 0 (hindi aktibo) kung hindi man.

Gumawa kami ng activation function para sa neuron. Ito ay isang simpleng pamamaraan, ngunit mayroon itong mga disadvantages. Isaalang-alang ang sumusunod na sitwasyon.

Isipin kung ano ang nilikha namin binary classifier- isang modelo na dapat magsabi ng "oo" o "hindi" (na-activate o hindi). Gagawin ito ng step function para sa iyo - maglalabas ito ng eksaktong 1 o 0.

Ngayon isipin ang isang kaso kung saan kailangan ng higit pang mga neuron klasipikasyon ng maraming klase: class1, class2, class3 at iba pa. Ano ang mangyayari kung higit sa 1 neuron ang na-activate? Lahat ng neuronsang activation function ay maglalabas ng 1. Sa kasong ito, lumitaw ang mga tanong tungkol sa kung anong klase ang dapat makuha sa huli para sa isang bagay.

Nais namin na isang neuron lamang ang ma-activate, at ang mga pag-andar ng pag-activate ng iba pang mga neuron ay katumbas ng zero (sa kasong ito lamang kami makakatiyak na ang network ay wastong tinutukoy ang klase). Ang ganitong network ay mas mahirap sanayin at makamit ang convergence. Kung ang pag-andar ng pag-activate ay hindi binary, kung gayon ang mga posibleng halaga ay "na-activate ng 50%", "na-activate ng 20%" at iba pa. Kung maraming neuron ang na-activate, mahahanap mo ang neuron na may pinakamataas na halaga activation function (ito ay mas mahusay, siyempre, para ito ay softmax function, hindi max. Ngunit huwag muna nating harapin ang mga isyung ito sa ngayon).

Ngunit sa kasong ito, tulad ng dati, kung higit sa isang neuron ang sinasabing "100% na aktibo," nananatili pa rin ang problema. Dahil may mga intermediate na halaga ng output ng neuron, ang proseso ng pagsasanay ay mas maayos at mas mabilis, at ang posibilidad na magkaroon ng ilang ganap na activated neuron sa panahon ng pagsasanay ay nababawasan kumpara sa isang stepwise activation function (bagaman ito ay depende sa kung ano ang iyong pagsasanay. sa at sa anong data).

Napagpasyahan namin na gusto naming makakuha ng mga intermediate na halaga ng activation function ( analog function), sa halip na sabihing "na-activate" o hindi (binary function).

Ang unang bagay na nasa isip ay isang linear function.

Linear activation function

A = cx

Ang linear function ay isang tuwid na linya at proporsyonal sa input (iyon ay, ang weighted sum sa neuron na iyon).

Ang pagpipiliang ito ng activation function ay nagbibigay-daan sa amin upang makakuha ng isang spectrum ng mga halaga, at hindi lamang isang binary na tugon. Maaaring ikonekta ang maramihang mga neuron at, kung higit sa isang neuron ang naisaaktibo, isang desisyon ang gagawin batay sa aplikasyon ng max (o softmax) na operasyon. Ngunit ito ay hindi walang mga problema.

Kung pamilyar ka sa paraan ng pag-aaral, maaari mong mapansin na para sa function na ito ang derivative ay katumbas ng pare-pareho.

Hinango ng A=cx Sa pamamagitan ng x katumbas ng Sa. Nangangahulugan ito na ang gradient ay walang kinalaman sa X. Ang gradient ay isang pare-parehong vector, at ang pagbaba ay isinasagawa kasama ng isang pare-parehong gradient. Kung ang isang maling hula ay ginawa, ang mga pagbabagong ginawa ng error ay pare-pareho din at independiyente sa pagbabago sa input delta(x).

Ito ay hindi mabuti (hindi palaging, ngunit sa karamihan ng mga kaso). Pero may isa pang problema. Tingnan natin ang mga konektadong layer. Ang bawat layer ay isinaaktibo ng isang linear function. Ang halaga mula sa function na ito ay napupunta sa susunod na layer bilang isang input, kinakalkula ng pangalawang layer ang weighted sum sa mga input nito at, sa turn, ay i-on ang mga neuron depende sa isa pang linear activation function.

Hindi mahalaga kung gaano karaming mga layer ang mayroon tayo. Kung lahat sila ay linear sa kalikasan, ang panghuling activation function sa huling layer ay magiging isang linear na function ng mga input sa unang layer! Huminto sandali at isaalang-alang ang kaisipang ito.

Nangangahulugan ito na ang dalawang layer (o N layer) ay maaaring mapalitan ng isang layer. Nawalan kami ng kakayahang gumawa ng mga set mula sa mga layer. Gaano man tayo mag-stack, ang buong bagay ay magiging tulad pa rin ng isang layer na may linear activation function ( kumbinasyon ng mga linear na function sa isang linear na paraan - isa pang linear function).

Sigmoid

Ang sigmoid ay lumilitaw na makinis at katulad ng isang step function. Isaalang-alang natin ang mga pakinabang nito.

Una, ang sigmoid ay nonlinear sa kalikasan, at ang kumbinasyon ng mga naturang function ay gumagawa din ng isang nonlinear na function. Ngayon ay maaari na tayong mag-stack ng mga layer.

Ang isa pang bentahe ng naturang function ay hindi ito binary, na ginagawang analog ang activation, hindi tulad ng isang step function. Ang sigmoid ay nailalarawan din ng isang makinis na gradient.

Kung mapapansin mo sa hanay ng mga halaga X mula -2 hanggang 2 Ang mga halaga ng Y ay mabilis na nagbabago. Nangangahulugan ito na ang anumang maliit na pagbabago sa halaga X sa lugar na ito ay nangangailangan ng isang makabuluhang pagbabago sa halaga Y. Ang pag-uugali na ito ng function ay nagpapahiwatig na ang Y ay may posibilidad na yakapin ang isa sa mga gilid ng curve.

Ang sigmoid ay tila isang angkop na function para sa mga problema sa pag-uuri. Nagsusumikap itong magdala ng mga halaga sa isa sa mga gilid ng kurba (halimbawa, sa itaas sa x=2 at mas mababa sa x=-2). Ang pag-uugali na ito ay nagbibigay-daan sa isa na makahanap ng malinaw na mga hangganan kapag gumagawa ng mga hula.

Ang isa pang bentahe ng sigmoid sa linear function ay ang mga sumusunod. Sa unang kaso, mayroon kaming isang nakapirming hanay ng mga halaga ng function - , habang ang linear na function ay nag-iiba sa loob ng (-inf, inf). Ang pag-aari na ito ng sigmoid ay lubhang kapaki-pakinabang, dahil hindi ito humahantong sa mga pagkakamali sa kaso ng malalaking halaga ng pag-activate.

Ngayon, ang sigmoid ay isa sa mga pinakakaraniwang activation function sa mga neural network. Ngunit mayroon din itong mga disadvantages na dapat bigyang pansin.

Maaaring napansin mo na habang papalapit ka sa mga dulo ng sigmoid, ang mga halaga ng Y ay may posibilidad na tumugon nang hindi maganda sa mga pagbabago sa X. Nangangahulugan ito na ang gradient sa mga nasabing lugar ay tumatagal sa maliliit na halaga. Ito naman, ay humahantong sa mga problema sa gradient ng pagkalipol. Isaalang-alang natin nang detalyado kung ano ang mangyayari habang ang activation function ay lumalapit sa halos pahalang na bahagi ng curve sa magkabilang panig.

Sa ganoong sitwasyon, maliit o nawawala ang gradient value (hindi makakagawa ng makabuluhang pagbabago dahil sa napakaliit na halaga). Ang neural network ay tumangging matuto nang higit pa o ginagawa ito nang napakabagal (depende sa paraan ng paggamit o hanggang sa magsimulang magdusa ang gradient/computation mula sa mga limitasyon ng floating point). May mga opsyon para sa pagtatrabaho sa mga problemang ito, at ang sigmoid ay napakapopular pa rin para sa mga problema sa pag-uuri.

Ang isa pang karaniwang ginagamit na activation function ay ang hyperbolic tangent.

Ang hyperbolic tangent ay halos kapareho sa sigmoid. At sa katunayan, ito ang adjusted sigmoid function.

Samakatuwid, ang naturang function ay may parehong mga katangian tulad ng sigmoid na tinalakay kanina. Ang kalikasan nito ay hindi linear, ito ay angkop para sa mga kumbinasyon ng layer, at ang hanay ng mga halaga ng pag-andar ay (-1, 1). Samakatuwid, walang punto sa pag-aalala na ang activation function ay ma-overload ng malalaking halaga. Gayunpaman, nararapat na tandaan na ang gradient ng tangential function ay mas malaki kaysa sa sigmoid (ang derivative ay steeper). Ang desisyon kung pipiliin ang sigmoid o tangent ay depende sa iyong mga kinakailangan sa gradient amplitude. Pati na rin ang sigmoid, hyperbolic tangent likas na problema pagkawala ng gradient.

Ang Tangent ay isa ring napakasikat at ginagamit na activation function.

ReLu

Susunod sa aming listahan ay ang ReLu activation function.

A(x) = max(0,x)

Gamit ang kahulugan, nagiging malinaw na ibinabalik ng ReLu ang halaga X, Kung X positibo, at 0 kung hindi. Ang operating diagram ay ipinapakita sa ibaba.

Sa unang sulyap, ang ReLu ay lumilitaw na may lahat ng parehong mga problema bilang isang linear function, dahil ang ReLu ay linear sa unang kuwadrante. Pero sa totoo lang, Ang ReLu ay non-linear sa kalikasan at ang kumbinasyon ng ReLu ay non-linear din! (Sa totoo lang, ang gayong pag-andar ay isang mahusay approximator, dahil ang anumang function ay maaaring tantiyahin sa pamamagitan ng kumbinasyon ng ReLu). Nangangahulugan ito na maaari tayong mag-stack ng mga layer. Rehiyon mga katanggap-tanggap na halaga ReLu - )