Аппараттық және бағдарламалық қамтамасыз етуді орнату

Нейрондық желілерді қалай бағдарламалауға болады. Нақты баптау, нейрондық желіні құру


Нейрондық желілердегі көптеген терминдер биологияға қатысты, сондықтан басынан бастайық:

Ми күрделі нәрсе, бірақ оны бірнеше негізгі бөліктерге және операцияларға бөлуге болады:

Қоздырғыш агент болуы мүмкін ішкі(мысалы, сурет немесе идея):

Енді негізгі және жеңілдетілгенін қарастырайық бөліктеріми:

Ми кабельдік желі сияқты.

Нейрон- мидағы негізгі есептеу бірлігі, ол басқа нейрондардың химиялық сигналдарын қабылдайды және өңдейді және бірқатар факторларға байланысты не ештеңе жасамайды немесе электрлік импульс тудырады, немесе әрекет потенциалы, содан кейін көрші нейрондарға сигнал жібереді. синапстар арқылы байланыстынейрондар:

Армандар, естеліктер, өзін-өзі реттейтін қозғалыстар, рефлекстер және шынымен де сіз ойлайтын немесе жасайтын барлық нәрсе - бәрі осы процестің арқасында жүзеге асады: миллиондаған, тіпті миллиардтаған нейрондар әртүрлі деңгейлерде жұмыс істейді және әртүрлі параллельді ішкі жүйелерді құрайтын және биологиялық жүйені білдіретін байланыстар жасайды. нейрондық желі. тор.

Әрине, бұл барлық жеңілдетулер мен жалпылаулар, бірақ олардың арқасында біз қарапайымды сипаттай аламыз
нейрондық желі:

Және оны график арқылы формальды түрде сипаттаңыз:

Мұнда кейбір түсініктеме қажет. Шеңберлер нейрондар, ал сызықтар олардың арасындағы байланыстар,
және осы кезеңде қиындатпау үшін, өзара байланыстарақпараттың тікелей ағынын көрсетеді солдан оңға қарай. Бірінші нейрон осы сәтбелсенді және сұр түспен белгіленген. Біз оған да нөмір бердік (жұмыс істесе 1, жұмыс істемесе 0). Нейрондар арасындағы сандар көрсетіледі салмақбайланыстар.

Жоғарыдағы графиктер желінің уақытын көрсетеді, дәлірек көрсету үшін оны уақыт аралықтарына бөлу керек:

Жеке нейрондық желіңізді жасау үшін салмақтың нейрондарға қалай әсер ететінін және нейрондар қалай үйренетінін түсінуіңіз керек. Мысал ретінде қоянды (сынау қоянын) алып, оны классикалық тәжірибе жағдайына келтірейік.

Қауіпсіз ауа ағыны оларға бағытталған кезде, адамдар сияқты қояндар жыпылықтайды:

Бұл мінез-құлық моделін графиктермен салуға болады:

Алдыңғы диаграммадағыдай, бұл графиктер қоянның тыныс алған сәтін ғана көрсетеді, сондықтан біз кодтау puff логикалық мән ретінде. Сонымен қатар, біз салмақтың мәніне сүйене отырып, екінші нейронның өртенетінін есептейміз. Егер ол 1-ге тең болса, онда сенсорлық нейрон оттайды, біз жыпылықтаймыз; салмағы 1-ден аз болса, біз жыпылықтамаймыз: екінші нейрон шектеу- 1.

Тағы бір элементті енгізейік - қауіпсіз дыбыстық сигнал:

Қоянның қызығушылығын келесідей үлгілеуге болады:

Негізгі айырмашылығы - қазір салмақ нөл, сондықтан біз жыпылықтайтын қоян алмадық, жақсы, әлі емес, кем дегенде. Енді біз қоянды команда бойынша жыпылықтауға, араластыруға үйретеміз
тітіркендіргіштер (дыбыс және тыныс):

Бұл оқиғалардың әртүрлі уақытта орын алуы маңызды дәуір, графиктерде ол келесідей болады:

Дыбыстың өзі ештеңе жасамайды, бірақ ауа ағыны әлі күнге дейін қоянның жыпылықтауын тудырады және біз мұны салмақпен тітіркендіргіштерге (қызыл түспен) көбейту арқылы көрсетеміз.

Білімкүрделі мінез-құлықты уақыт өте байланысты нейрондар арасындағы салмақтың біртіндеп өзгеруі ретінде жеңілдетуге болады.

Қоянды үйрету үшін келесі қадамдарды қайталаңыз:

Алғашқы үш әрекет үшін диаграммалар келесідей болады:

Дыбыстық ынталандырудың салмағы әр қайталаудан кейін арта түсетінін ескеріңіз (қызыл түспен белгіленген), бұл мән енді ерікті - біз 0,30 таңдадық, бірақ сан кез келген нәрсе, тіпті теріс болуы мүмкін. Үшінші қайталаудан кейін сіз қоянның мінез-құлқындағы өзгерісті байқамайсыз, бірақ төртінші қайталаудан кейін таңғажайып нәрсе болады - мінез-құлық өзгереді.

Біз ауаға әсер етуді жойдық, бірақ қоян дыбысты естігенде әлі де жыпылықтайды! Біздің соңғы схемамыз бұл әрекетті түсіндіре алады:

Біз қоянды дыбысқа жыпылықтау арқылы жауап беруге үйреттік.

Осындай нақты тәжірибеде нәтижеге жету үшін 60-тан астам қайталау қажет болуы мүмкін.

Енді біз ми мен қоянның биологиялық әлемінен шығып, мұның бәрін бейімдеуге тырысамыз
жасанды нейрондық желіні құруды үйренді. Алдымен қарапайым тапсырманы орындауға тырысайық.

Бізде төрт түймесі бар машина бар делік, ол дұрыс түймені басқан кезде тағамды береді.
түймелер (жақсы, немесе сіз робот болсаңыз, қуат). Тапсырма қай түйменің сыйлық беретінін анықтау:

Біз түймені келесідей басқан кезде не істейтінін (сызба түрінде) бейнелей аламыз:

Мұндай мәселені тұтастай шешкен дұрыс, сондықтан барлық ықтимал нәтижелерді, соның ішінде дұрысын қарастырайық:

Кешкі асыңызды алу үшін 3-ші түймені басыңыз.

Нейрондық желіні кодта қайта шығару үшін алдымен желіні салыстыруға болатын модель немесе график жасау керек. Міне, тапсырма үшін бір қолайлы график, сонымен қатар ол өзінің биологиялық аналогын жақсы көрсетеді:

Бұл нейрондық желі тек кірісті қабылдайды - бұл жағдайда қай түйме басылғанын қабылдау болады. Содан кейін желі кіріс ақпаратты салмақтармен ауыстырады және қабаттың қосылуы негізінде қорытынды жасайды. Бұл аздап түсініксіз естіледі, бірақ біздің модельде түйменің қалай ұсынылғанын көрейік:

Барлық салмақтар 0 екенін ескеріңіз, сондықтан нәресте сияқты нейрондық желі толығымен бос, бірақ толығымен өзара байланысты.

Осылайша, біз сыртқы оқиғаны нейрондық желінің кіріс деңгейімен сәйкестендіреміз және оның шығысындағы мәнді есептейміз. Бұл шындыққа сәйкес келуі немесе сәйкес келмеуі мүмкін, бірақ біз оны әзірге елемейміз және тапсырманы компьютерге түсінікті етіп сипаттай бастаймыз. Салмақтарды енгізуден бастайық (біз JavaScript-ті қолданамыз):

Var кірістері = ; var weights = ; // Ыңғайлы болу үшін бұл векторларды шақыруға болады
Келесі қадам кіріс мәндері мен салмақтарды жинайтын және шығыс мәнін есептейтін функцияны жасау болып табылады:

Функция evaluateNeuralNetwork(inputVector, weightVector)( var result = 0; inputVector.forEach(function(inputValue, weightIndex) ( layerValue = inputValue*weightVector; нәтиже += layerValue; )); return (result.toFixed(2)); ) / / Күрделі болып көрінуі мүмкін, бірақ мұның бәрі салмақ/кіріс жұптарына сәйкес келеді және нәтижені қосыңыз
Күтілгендей, егер біз осы кодты іске қоссақ, біз үлгідегі немесе графиктегідей нәтиже аламыз…

EvaluateNeuralNetwork(енгізулер, салмақтар); // 0,00
Тікелей мысал: Neural Net 001.

Біздің нейрондық желімізді жетілдірудің келесі қадамы нақты жағдаймен салыстырмалы түрде өз шығысын немесе нәтиже мәндерін тексеру тәсілі болады,
алдымен осы нақты шындықты айнымалыға кодтайық:

Сәйкессіздіктерді (және қанша) анықтау үшін қате функциясын қосамыз:

Қате = Шындық - Нейрондық желі шығысы
Оның көмегімен біз нейрондық желінің өнімділігін бағалай аламыз:

Бірақ одан да маңыздысы - шындық оң нәтиже беретін жағдайлар туралы не деуге болады?

Енді біз нейрондық желі моделінің жұмыс істемейтінін білеміз (және біз қалай екенін білеміз), тамаша! Және бұл тамаша, өйткені қазір біз жаттығуларымызды басқару үшін қате функциясын пайдалана аламыз. Бірақ қате функциясын келесідей қайта анықтайтын болсақ, бәрі мағынасы бар:

қате = Қалаған шығыс- Нейрондық желі шығысы
Нәзік, бірақ маңызды алшақтық, біз болатындығын үнсіз көрсетеді
өткен нәтижелерді болашақ әрекеттермен салыстыру үшін пайдаланыңыз
(және үйрену үшін, кейінірек көреміз). Ол да бар шын өмір, толық
қайталанатын үлгілер, сондықтан ол эволюциялық стратегияға айналуы мүмкін (жақсы
көп жағдайда).

var input = ; var weights = ; vardesiredResult = 1;
Және жаңа функция:

Функция evaluateNeuralNetError(қалаулы, нақты) (қайтару (қалаулы - нақты); ) // Желіні де, қатені де бағалағаннан кейін біз мынаны аламыз: // "Нейрондық желі шығысы: 0,00 қате: 1"
Тікелей мысал: Neural Net 002.

Қорытындылайық. Біз тапсырмадан бастадық, оның қарапайым моделін биологиялық нейрондық желі түрінде жасадық және оның өнімділігін шындықпен немесе қажетті нәтижемен салыстыру әдісін алдық. Енді біз сәйкессіздікті түзетудің жолын табуымыз керек - бұл процесс компьютерлер үшін де, адамдар үшін де оқу деп санауға болады.

Нейрондық желіні қалай үйретуге болады?

Биологиялық және жасанды нейрондық желілерді оқытудың негізі қайталау болып табылады
және оқыту алгоритмдері, сондықтан біз олармен бөлек жұмыс істейміз. бастайық
оқыту алгоритмдері.

Табиғатта оқыту алгоритмдері физикалық немесе химиялық өзгерістер ретінде түсініледі
Тәжірибеден кейінгі нейрондардың сипаттамалары:

Кодтағы екі нейронның уақыт өте келе қалай өзгеретінін көрсететін драмалық сурет және біздің «оқу алгоритмі» моделі өмірімізді жеңілдету үшін уақыт өте келе заттарды өзгертетінімізді білдіреді. Сонымен, өмірдің қаншалықты жеңіл екенін көрсету үшін айнымалыны қосайық:

Var LearningRate = 0,20; // Мән неғұрлым үлкен болса, оқу процесі соғұрлым жылдамырақ болады :)
Ал ол нені өзгертеді?

Бұл салмақтарды (қоян сияқты!), әсіресе біз алғымыз келетін өнім салмағын өзгертеді:

Мұндай алгоритмді кодтау сіздің таңдауыңыз, қарапайымдылық үшін мен салмаққа оқу коэффициентін қосамын, мұнда ол функция түрінде:

Функцияны үйрену(inputVector, weightVector) ( weightVector.forEach(функция(салмақ, индекс, салмақтар) ( if (inputVector > 0)) ( салмақтар = салмақ + LearningRate; ) )); )
Қолданылған кезде бұл жаттығу функциясы салмақ векторына үйрену жылдамдығын қосады белсенді нейрон, жаттығу шеңберіне дейін және кейін (немесе қайталау), нәтижелер келесідей болады:

// Бастапқы салмақ векторы: // Нейрондық таза шығыс: 0,00 Қате: 1 үйрену(енгізу, салмақтар); // Жаңа салмақ векторы: // Нейрондық таза шығыс: 0,20 Қате: 0,8 // Егер бұл анық болмаса, нейрондық желінің шығысы 1-ге жақын (тауық шығысы) - бұл біз қалаған нәрсе, сондықтан біз қорытынды жасай аламыз дұрыс бағытта қозғалуда
Тікелей мысал: Neural Net 003.

Жарайды, енді біз дұрыс бағытта келе жатырмыз, бұл басқатырғыштың соңғы бөлігі іске асыру болады қайталаулар.

Бұл соншалықты қиын емес, табиғатта біз бір нәрсені қайта-қайта жасаймыз, бірақ кодта біз қайталану санын ғана көрсетеміз:

Var сынақтары = 6;
Жаттығу нейрондық желіге қайталау саны функциясын енгізу келесідей болады:

Функциялар тізбегі(сынақтар) ( (i = 0; i) үшін< trials; i++) { neuralNetResult = evaluateNeuralNetwork(input, weights); learn(input, weights); } }
Міне, біздің қорытынды есеп:

Нейрондық таза шығыс: 0,00 қате: 1,00 салмақ векторы: нейрондық таза шығыс: 0,20 қате: 0,80 салмақ векторы: нейрондық таза шығыс: 0,40 қате: 0,60 салмақ векторы: нейрондық таза шығыс: 0,60 қате: 0,40 салмақ қатесі: 0,40 салмақ қатесі: нейрондық таза 0. : 0,20 Салмағы вектор: Нейрондық таза шығыс: 1,00 Қате: 0,00 Салмақ векторы: // Тауық етінен кешкі ас !
Тікелей мысал: Neural Net 004.

Енді бізде салмақ векторы бар, ол тек бір нәтиже береді (кешкі асқа арналған тауық еті), егер кіріс векторы шындыққа сәйкес келсе (үшінші түймені басу).

Сонымен, біз жасаған керемет нәрсе қандай?

Бұл нақты жағдайда біздің нейрондық желі (жаттығудан кейін) кірісті тани алады және қажетті нәтижеге не әкелетінін айта алады (біз әлі де нақты жағдайларды бағдарламалауымыз керек):

Сонымен қатар, бұл масштабталатын модель, ойыншық және сізбен бірге оқуға арналған құрал. Біз машиналық оқыту, нейрондық желілер және жасанды интеллект туралы жаңа нәрсе біле алдық.

Пайдаланушыларға ескерту:

  • Үйренілген салмақтарды сақтау механизмі қарастырылмаған, сондықтан бұл нейрондық желі өзі білетін барлық нәрсені ұмытады. Кодты жаңартқанда немесе қайта іске қосқанда, егер адам немесе машина түймелерді кездейсоқ ретпен басады деп ойласаңыз, желіні толық жаттықтыру үшін кемінде алты сәтті қайталау қажет ... Бұл біраз уақытты алады.
  • Маңызды нәрселерді үйренуге арналған биологиялық желілердің оқу жылдамдығы 1-ге тең, сондықтан тек бір сәтті қайталау қажет болады.
  • Биологиялық нейрондарға өте ұқсас оқыту алгоритмі бар, оның қызықты атауы бар: widroff-hoff ережесі, немесе widroff-hoff жаттығулары.
  • Нейрондық шектер (біздің мысалда 1) және қайта оқыту әсерлері (қашан көп мөлшердеқайталаулар 1) ескерілмейді, бірақ олар табиғатта өте маңызды және мінез-құлық реакцияларының үлкен және күрделі блоктарына жауап береді. Теріс салмақтар да солай.

Қосымша оқу үшін ескертпелер мен библиография

Мен математикадан және қатаң шарттардан аулақ болуға тырыстым, бірақ егер сізді қызықтыратын болса, біз қос классификаторлардың - ауыр заттардың бақыланатын оқыту алгоритмі (бақыланатын оқыту) ретінде анықталған перцептронды жасадық.

Мидың биологиялық құрылымы ішінара дәлсіздіктерге байланысты, ішінара оның күрделілігіне байланысты оңай тақырып емес. Нейрологиядан (Пурвес) және Когнитивті Нейрологиядан (Газзанига) бастаған дұрыс. Мен қоян үлгісін Gateway to Memory (Gluck) қолданбасынан өзгертіп, бейімдедім, ол сонымен қатар графика әлеміне тамаша нұсқаулық болып табылады.

Тағы бір керемет ресурс, Нейрондық желілерге кіріспе (Гурни) AI қажеттіліктеріне өте ыңғайлы.

Ал енді Python-да! Python нұсқасын ұсынғаны үшін Илья Андшмидтке рахмет:

Енгізулер = салмақтар = қалаған_нәтиже = 1 оқу_ставкасы = 0,2 сынақ = 6 деф evaluate_neural_network(input_array, weight_array): нәтиже = 0 диапазондағы i үшін(len(input_array)): қабат_мәні = кіріс_массив[i] * салмақ_жиымы[i] нәтиже += қабат print("evaluate_neural_network: " + str(нәтиже)) print("weights: " + str(weights)) қайтару нәтиже def evaluate_error(қалаулы, нақты): қате = қалаған - нақты басып шығару("бағалау_қате: " + str(қате) ) қатені қайтару анықтамасын үйрену(кіріс_жиымы, салмақ_жиымы): диапазондағы i үшін басып шығару("оқу...")(len(input_массив)): егер input_array[i] > 0: салмақ_жиымы[i] += үйрену_бағасы анықтау поезды(сынақтар) ): диапазондағы i үшін(сынақтар): neural_net_result = evaluate_neural_network(енгізулер, салмақтар) үйрену(енгізулер, салмақтар) поезд(сынақтар)
Ал енді GO! Осы нұсқа үшін Киран Махерге несие.

Пакет негізгі импорты («fmt» «math») func main() ( fmt.Println («Енгізулер мен салмақтарды жасау ...») кірістер:= float64(0,00, 0,00, 1,00, 0,00) салмақтары:= float64(0,00, 0,00, 0,00, 0,00) қалаған:= 1,00 оқытуRate:= 0,20 сынақтар:= 6 пойыз(сынақтар, енгізулер, салмақтар, қалаулы, үйренуRate) ) func пойызы (сынамалар int, кірістер float64, салмақтар float64, қалаған float64, үйрену)R i:= 1;i үшін< trials; i++ { weights = learn(inputs, weights, learningRate) output:= evaluate(inputs, weights) errorResult:= evaluateError(desired, output) fmt.Print("Output: ") fmt.Print(math.Round(output*100) / 100) fmt.Print("\nError: ") fmt.Print(math.Round(errorResult*100) / 100) fmt.Print("\n\n") } } func learn(inputVector float64, weightVector float64, learningRate float64) float64 { for index, inputValue:= range inputVector { if inputValue >0,00 ( weightVector = weightVector + learningRate ) ) return weightVector ) func evaluate(inputVector float64, weightVector float64) float64 (нәтиже:= 0,00 индекс үшін, inputValue:= диапазон inputVector (layerValue: *= вектордың салмағы = V нәтиже) қайтаруV нәтиже ) func evaluateError(қалаулы float64, нақты float64) float64 (қайтару керек - нақты )

Сіз сайтты дамытуға көмектесіп, біраз қаражат аудара аласыз

 

Жасанды нейрондық желі – бір-бірімен әрекеттесетін нейрондардың жиынтығы. Олар деректерді қабылдауға, өңдеуге және жасауға қабілетті. Оны адам миының жұмысы сияқты елестету қиын. Біздің миымыздағы нейрондық желі жұмыс істейді, осылайша сіз енді мынаны оқи аласыз: біздің нейрондар әріптерді танып, оларды сөзге айналдырады.

Жасанды нейрондық желі ми сияқты. Ол бастапқыда кейбір кешенді жеңілдету үшін бағдарламаланған есептеу процестері. Бүгінгі таңда нейрондық желілердің мүмкіндіктері әлдеқайда көп. Олардың кейбіреулері смартфонда. Бұл мақаланы ашқаныңыздың басқа бөлігі дерекқорында жазылған. Мұның бәрі қалай болады және неліктен, оқыңыз.

Бәрі қалай басталды

Адамдар шынымен адамның ақыл-ойы қайдан келетінін және мидың қалай жұмыс істейтінін түсінгісі келді. Өткен ғасырдың ортасында канадалық нейропсихолог Дональд Хебб мұны түсінді. Хебб нейрондардың бір-бірімен әрекеттесуін зерттеп, олардың топтарға (ғылыми тұрғыдан - ансамбльдер) біріктіру принципін зерттеді және нейрондық желілерді оқытудың ғылымдағы алғашқы алгоритмін ұсынды.

Бірнеше жылдан кейін американдық ғалымдар тобы шаршы пішіндерді басқа пішіндерден ажырата алатын жасанды нейрондық желіні модельдеді.

Нейрондық желі қалай жұмыс істейді?

Зерттеушілер нейрондық желі нейрондардың қабаттарының жиынтығы екенін анықтады, олардың әрқайсысы белгілі бір критерийді тануға жауап береді: пішін, түс, өлшем, текстура, дыбыс, көлем және т.б. Жылдан-жылға миллиондаған эксперименттер мен тонна есептеулер ең қарапайым желінейрондардың көбірек қабаттары қосылды. Олар кезектесіп жұмыс істейді. Мысалы, біріншісі шаршының шаршы екенін немесе шаршы емес екенін анықтайды, екіншісі шаршының қызыл немесе қызыл емес екенін түсінеді, үшіншісі шаршының өлшемін есептейді және т.б. Шаршы емес, қызыл емес және қате өлшемфигуралар нейрондардың жаңа топтарына түседі және олармен зерттеледі.

Нейрондық желілер дегеніміз не және олар не істей алады?

Ғалымдар күрделі кескіндерді, бейнелерді, мәтіндерді және сөйлеуді ажыратуды үйрену үшін нейрондық желілерді дамытты. Қазіргі уақытта нейрондық желілердің көптеген түрлері бар. Олар архитектурасына байланысты жіктеледі - деректер параметрлерінің жиынтықтары және осы параметрлердің салмағы, белгілі бір басымдылық. Төменде олардың кейбіреулері берілген.

Конволюциялық нейрондық желілер

Нейрондар топтарға бөлінеді, әр топ өзіне берілген сипаттаманы есептейді. 1993 жылы француз ғалымы Ян Лекун әлемге қағазға жазылған сандарды қолмен тез және дәл тани алатын алғашқы конволюционды нейрондық желі LeNet 1-ді көрсетті. Өзіңіз қараңыз:

Бүгінгі таңда конволюционды нейрондық желілер негізінен мультимедиялық мақсаттарда қолданылады: олар графикамен, аудио және бейнемен жұмыс істейді.

Қайталанатын нейрондық желілер

Нейрондар ақпаратты үнемі есте сақтайды және осы деректер негізінде әрі қарай әрекеттерді жасайды. 1997 жылы неміс ғалымдары ең қарапайым қайталанатын желілерді ұзақ қысқа мерзімді жады бар желілерге өзгертті. Олардың негізінде басқарылатын қайталанатын нейрондары бар желілер әзірленді.

Бүгінгі күні осындай желілердің көмегімен мәтіндер жазылады және аударылады, адаммен мағыналы диалогтар жүргізетін боттар бағдарламаланады, беттер мен бағдарламалардың кодтары жасалады.

Нейрондық желілердің бұл түрін пайдалану деректерді талдау және генерациялау, деректер қорын құрастыру және тіпті болжау жасау мүмкіндігі болып табылады.

2015 жылы SwiftKey басқарылатын нейрондары бар қайталанатын нейрондық желі арқылы жұмыс істейтін әлемдегі алғашқы пернетақтаны шығарды. Содан кейін жүйе соңғы енгізілген сөздерге негізделген теру процесінде кеңестер берді. Өткен жылы әзірлеушілер нейрондық желіні терілген мәтіннің контекстін үйренуге үйретті және кеңестер мағыналы және пайдалы болды:

Біріктірілген нейрондық желілер (конволюциялық + қайталанатын)

Мұндай нейрондық желілер кескінде не бар екенін түсінуге және оны сипаттауға қабілетті. Және керісінше: сипаттамаға сәйкес кескіндерді салыңыз. Ең айқын мысалды Амстердамда серуендеу үшін нейрондық желіні алған Кайл Макдональд көрсетті. Желі алдында не бар екенін бірден анықтады. Және әрқашан дерлік дәл:

Нейрондық желілер үнемі өздігінен білім алады. Бұл процесс арқылы:

1. Skype 10 тілге ілеспе аударма мүмкіндігін енгізді. Олардың ішінде бір сәтке орыс және жапон тілдері бар - әлемдегі ең қиындардың бірі. Әрине, аударманың сапасы айтарлықтай жақсартуды қажет етеді, бірақ қазірдің өзінде жапондық әріптестермен орыс тілінде сөйлесіп, сізді түсінетініне сенімді болудың өзі шабыттандырады.

2. Яндекс нейрондық желілерге негізделген екі іздеу алгоритмін жасады: Палех және Королев. Біріншісі төмен жиілікті сұраулар үшін ең өзекті сайттарды табуға көмектесті. «Палех» беттердің атауларын зерттеп, олардың мағынасын сұраулардың мағынасымен салыстырды. Палех негізінде Королев пайда болды. Бұл алгоритм тақырыпты ғана емес, сонымен қатар беттің бүкіл мәтіндік мазмұнын бағалайды. Іздеу дәлірек болуда, ал сайт иелері беттердің мазмұнына неғұрлым ақылды түрде жақындай бастады.

3. Яндекстің SEO мамандарының әріптестері музыкалық нейрондық желіні құрды: ол өлең жазады және музыка жазады. Нейротоп символдық түрде Neurona деп аталады және олардың алғашқы альбомы бар:

4. Google Inbox хабарға жауап беру үшін нейрондық желілерді пайдаланады. Технологияның дамуы қарқынды жүріп жатыр және бүгінде желі хат алмасу мен генерацияны зерттеп жатыр ықтимал опцияларжауап. Сіз теруге уақытты жоғалта алмайсыз және кейбір маңызды келісімді ұмытудан қорықпаңыз.

5. YouTube бейнелерді бағалау үшін нейрондық желілерді пайдаланады және бірден екі принцип бойынша: бір нейрондық желі бейнелер мен оларға аудиторияның реакциясын зерттейді, екіншісі пайдаланушылар мен олардың қалауы бойынша зерттеулер жүргізеді. Сондықтан YouTube ұсыныстары әрқашан тақырыпта.

6. Facebook DeepText AI - жаргонды түсінетін және чаттарды ұятсыз сөздіктерден тазартатын коммуникациялық бағдарламамен белсенді жұмыс істеуде.

7. Нейрондық желілерде құрылған Prisma және Fabby сияқты қолданбалар кескіндер мен бейнелерді жасайды:

Colorize қара және ақ фотосуреттердің түсін қалпына келтіреді (әжеге таң қалдырыңыз!).

MakeUp Plus нағыз брендтердің нақты ауқымынан қыздарға арналған тамаша ерін далабы таңдайды: Bobbi Brown, Clinique, Lancome және YSL қазірдің өзінде бизнесте.


8.
Apple және Microsoft өздерінің нейрондық Siri және Contana құрылғыларын үнемі жаңартып отырады. Әзірге олар тек біздің тапсырыстарымызды орындап жатыр, бірақ жақын арада олар бастаманы қолға алады: ұсыныстар беріп, тілектерімізді болжауға болады.

Ал болашақта бізді тағы не күтіп тұр?

Өзін-өзі үйренетін нейрондық желілер адамдарды алмастыра алады: олар копирайтер мен корректорлардан басталады. Қазірдің өзінде роботтар мәтіндерді мағынасы бар және қатесіз жасайды. Және олар мұны адамдарға қарағанда әлдеқайда жылдам жасайды. Олар байланыс орталықтарының қызметкерлерімен, техникалық қолдаумен, модераторлармен және әлеуметтік желілердегі жұртшылықтың әкімшілерімен жалғасады. Нейрондық желілерсценарийді үйренуді және оны дауыспен ойнатуды біледі. Басқа аймақтарда ше?

Ауыл шаруашылығы саласы

Нейрондық желі арнайы жабдықта жүзеге асырылады. Комбайндар нейрондық желіге деректерді жібере отырып, автопилот, өсімдіктерді сканерлейді және топырақты зерттейді. Ол шешеді - суару, ұрықтандыру немесе зиянкестерден бүрку. Бірнеше ондаған жұмысшының орнына ең көбі екі маман қажет болады: бақылаушы және техникалық.

Дәрі

Майкрософт қазір қатерлі ісікке қарсы дәрі жасаумен белсенді жұмыс істеуде. Ғалымдар биобағдарламалаумен айналысады - олар ісіктердің пайда болу және даму процесін цифрлауға тырысады. Барлығы ойдағыдай болған кезде, бағдарламашылар мұндай процеске тосқауыл қоюдың жолын таба алады, аналогия бойынша дәрі жасалады.

Маркетинг

Маркетинг жоғары жекелендірілген. Қазірдің өзінде нейрондық желілер секундтарда қай пайдаланушыны, қандай мазмұнды және қандай бағамен көрсету керектігін анықтай алады. Болашақта маркетологтың процеске қатысуы минимумға дейін төмендейді: нейрондық желілер пайдаланушының мінез-құлқы туралы деректер негізінде сұраныстарды болжайды, нарықты сканерлейді және адам сатып алу туралы ойлаған кезде ең қолайлы ұсыныстарды шығарады.

Электрондық коммерция

Электрондық коммерция барлық жерде жүзеге асырылатын болады. Сілтемені пайдаланып интернет-дүкенге енді барудың қажеті жоқ: бір рет басу арқылы сіз көрген барлық нәрсені сатып ала аласыз. Мысалы, сіз бұл мақаланы бірнеше жылдан кейін оқып жатырсыз. Сізге MakeUp Plus қолданбасының экрандағы ерін далабы ұнайды (жоғарыдан қараңыз). Сіз оны басып, тікелей арбаға барасыз. Немесе туралы бейне қараңыз соңғы үлгі Hololens (аралас шындық көзілдірігі) және тікелей YouTube сайтынан тапсырыс беріңіз.

Әрбір дерлік салада нейрондық желілердің, машиналық оқытудың және жүйелердің құрылымын білетін немесе кем дегенде түсінетін мамандар бағаланады. жасанды интеллект. Біз роботтармен қатар өмір сүреміз. Және олар туралы көбірек білсек, біз соғұрлым тыныш өмір сүреміз.

P.S. Zinaida Falls - өлең жазатын Яндекс нейрондық желісі. Маяковскийден үйренген машинаның жазған жұмысын бағалаңыз (орфография мен тыныс белгілері сақталған):

« Бұл»

ол
жай
бірдеңе
болашақта
және қуат
сол адам
бәрі бар ма, жоқ па
айнала қан
келістік
семіру
даңқ
жер
тұмсығы жарылған

Әсерлі, иә?

Жақында олар нейрондық желілер деп аталатындар туралы көбірек айтады, олардың айтуынша, олар жақын арада робототехникада, машина жасауда және адам қызметінің көптеген басқа салаларында белсенді түрде қолданылады, бірақ іздеу жүйелерінің алгоритмдері, сол Google оларды баяу пайдалана бастады. жұмыс. Бұл нейрондық желілер дегеніміз не, олар қалай жұмыс істейді, олардың қолданбалары қандай және олар бізге қалай пайдалы болуы мүмкін, мұның бәрі туралы толығырақ оқыңыз.

Нейрондық желілер дегеніміз не

Нейрондық желілер салалардың бірі болып табылады ғылыми зерттеулерадамның жүйке жүйесіне еліктеуге ұмтылуға негізделген жасанды интеллект (AI) жасау саласында. Оның ішінде (жүйке жүйесі) қателерді түзету және өздігінен үйрену қабілеті. Мұның бәрі біршама өрескел болса да, адам миының жұмысын имитациялауға мүмкіндік беруі керек.

Биологиялық нейрондық желілер

Бірақ жоғарыдағы абзацтағы бұл анықтама таза техникалық, бірақ биология тілінде айтатын болсақ, нейрондық желі - бұл адамның жүйке жүйесі, миымыздағы нейрондардың жиынтығы, соның арқасында біз ойланамыз, белгілі бір шешімдер қабылдаймыз, айналадағы әлемді қабылдаймыз. біз.

Биологиялық нейрон - бұл ядродан, денеден және процестерден тұратын, сонымен қатар мыңдаған басқа нейрондармен тығыз байланыста болатын ерекше жасуша. Осы байланыс арқылы электрохимиялық импульстар үздіксіз беріліп, бүкіл нейрондық желіні қозу күйіне келтіреді немесе керісінше. Мысалы, қандай да бір жағымды және сонымен бірге қызықты оқиға (сүйікті адаммен кездесу, жарыста жеңіске жету және т.б.) біздің басымызда орналасқан нейрондық желіде электрохимиялық импульс тудырады, бұл оның қозуына әкеледі. Нәтижесінде мидағы нейрондық желі өз қозуын біздің денеміздің басқа мүшелеріне жібереді және жүрек соғу жиілігін арттырады, көздің жиі жыпылықтауын және т.б.

Міне, суретте мидың биологиялық нейрондық желісінің өте жеңілдетілген моделі. Нейронның жасуша денесі мен ядродан тұратынын көреміз, жасуша денесінде дендрит деп аталатын көптеген тармақталған талшықтар бар. Ұзын дендриттер аксондар деп аталады және ұзындығы осы суретте көрсетілгеннен әлдеқайда үлкен, нейрондар арасындағы аксондар арқылы байланыс жүзеге асырылады, олардың арқасында біздің басымызда биологиялық нейрондық желі жұмыс істейді.

Нейрондық желілердің тарихы

Ғылым мен техникада нейрондық желілердің даму тарихы қандай? Ол алғашқы компьютерлердің немесе компьютерлердің (электрондық компьютерлер) пайда болуымен басталды, олар сол кездегідей аталды. 1940 жылдардың аяғында белгілі бір Дональд Хебб компьютерлерді, осы «протокомпьютерлерді» оқыту ережелерін белгілейтін нейрондық желі механизмін жасады.

Оқиғалардың одан әрі хронологиясы келесідей болды:

  • 1954 жылы бірінші практикалық қолданукомпьютерлер жұмысындағы нейрондық желілер.
  • 1958 жылы Фрэнк Розенблат үлгіні тану алгоритмін және оған математикалық аннотацияны әзірледі.
  • 1960 жылдары нейрондық желілерді дамытуға қызығушылық сол кездегі әлсіз есептеу қуатына байланысты біршама әлсіреді.
  • Ол 1980 жылдары қайта жанданды, дәл осы кезеңде кері байланыс механизмі бар жүйе пайда болды, өздігінен білім алу алгоритмдері жасалды.
  • 2000 жылға қарай компьютерлердің қуатының өскені сонша, олар бұрынғы ғалымдардың армандарын жүзеге асыра алды. Осы уақытта дауысты тану, компьютерлік көру және т.б. бағдарламалар пайда болды.

Жасанды нейрондық желілер

Жасанды нейрондық желілер әдетте деп түсініледі есептеу жүйелеріөзінің өнімділігін біртіндеп арттыра отырып, өздігінен білім алу мүмкіндігіне ие болу. Нейрондық желі құрылымының негізгі элементтері:

  • Жасанды нейрондар, олар қарапайым өзара байланысқан бірліктер.
  • нейрондар арасында ақпаратты жіберу және қабылдау үшін қолданылатын байланыс болып табылады.
  • Сигнал – бұл жіберілетін нақты ақпарат.

Нейрондық желілерді қолдану

Жасанды нейрондық желілердің қолдану аясы жыл сайын кеңейіп келеді, бүгінгі күні олар келесі салаларда қолданылады:

  • Машиналық оқыту – жасанды интеллекттің бір түрі. Ол бір типтегі миллиондаған тапсырмалар мысалында AI жаттығуларына негізделген. Қазіргі уақытта машиналық оқыту белсенді түрде жүзеге асырылуда іздеу жүйелері Google, Yandex, Bing, Baidu. Сондықтан миллиондарға негізделген іздеу сұраулары, біз күн сайын Google-ге енгіземіз, олардың алгоритмдері біз іздеген нәрсені дәл таба алуымыз үшін бізге ең сәйкес нәтижелерді көрсетуді үйренеді.
  • Робот техникасында нейрондық желілер роботтардың темір «миы» үшін көптеген алгоритмдерді жасауда қолданылады.
  • Сәулетшілер компьютерлік жүйелерпараллельді есептеулер мәселесін шешу үшін нейрондық желілерді пайдалану.
  • Нейрондық желілердің көмегімен математиктер әртүрлі күрделі математикалық есептерді шеше алады.

Нейрондық желілердің түрлері

Жалпы, әртүрлі тапсырмалар үшін қолданылады әртүрлі түрлеріжәне нейрондық желілердің түрлері, олардың ішінде:

  • конволюциялық нейрондық желілер,
  • қайталанатын нейрондық желілер,
  • Хопфилд нейрондық желісі.

Конволюциялық нейрондық желілер

Конволюционды желілер жасанды нейрондық желілердің ең танымал түрлерінің бірі болып табылады. Осылайша, олар визуалды үлгіні тану (бейне және кескіндер), кеңес беру жүйелері және тілді өңдеудегі тиімділігін дәлелдеді.

  • Конволюциялық нейрондық желілер жоғары масштабталады және оларды кез келген үлкен ажыратымдылықты үлгіні тану үшін пайдалануға болады.
  • Бұл желілер көлемді үш өлшемді нейрондарды пайдаланады. Бір қабаттың ішінде нейрондар рецептивті қабат деп аталатын шағын өріс арқылы ғана байланысады.
  • Көрші қабаттардың нейрондары кеңістіктік локализация механизмі арқылы байланысады. Осындай көптеген қабаттардың жұмысы пикселдердің көбеюіне жауап беретін арнайы сызықты емес сүзгілер арқылы қамтамасыз етіледі.

Қайталанатын нейрондық желілер

Мұндай нейрондық желілер қайталанатын деп аталады, олардың нейрондары арасындағы байланыстар индикативті циклды құрайды. Келесі сипаттамаларға ие:

  • Әрбір қосылымның өзіндік салмағы бар, бұл да басымдық.
  • Түйіндер кіріспе түйіндер және жасырын түйіндер болып екі түрге бөлінеді.
  • Қайталанатын нейрондық желідегі ақпарат түзу сызықпен, қабат-қабатпен ғана емес, нейрондардың өздері арасында да беріледі.
  • Қайталанатын нейрондық желінің маңызды ерекшелігі - машинаға кеңейтілген өңдеуді қажет ететін деректердің белгілі бір бөліктері берілуі мүмкін «назар аймағы» деп аталатын аймақтың болуы.

Қайталанатын нейрондық желілер мәтіндік деректерді тану және өңдеу кезінде қолданылады (жиілігі бойынша олар Google аудармашысына, Яндекс Палех алгоритміне, дауыстық көмекші Apple Siri).

Нейрондық желілер, бейне

Және қорытындысында қызықты видеонейрондық желілер туралы.


Мақаланы жазған кезде мен оны барынша қызықты, пайдалы және сапалы етіп жасауға тырыстым. Мен кез келгеніне риза боламын кері байланысжәне мақалаға түсініктеме түрінде сындарлы сын. Менің поштама өз қалауыңызды/сұрақ/ұсынысыңызды жаза аласыз [электрондық пошта қорғалған]немесе Facebook желісінде авторға құрметпен.

Бұл жолы мен нейрондық желілерді зерттеуді шештім. Мен бұл мәселе бойынша негізгі дағдыларды 2015 жылдың жазы мен күзінде ала алдым. Негізгі дағдылар арқылы мен қарапайым нейрондық желіні нөлден бастап жасай аламын деп ойлаймын. Мысалдарды менің GitHub репозиторийлерімнен таба аласыз. Бұл мақалада мен кейбір түсініктемелер беремін және зерттеуіңіз үшін пайдалы болуы мүмкін ресурстармен бөлісемін.

1-қадам: Нейрондар және алға қарай таралу

Сонымен, «нейрондық желі» дегеніміз не? Мұны күтіп, алдымен бір нейронмен айналысайық.

Нейрон функция сияқты: ол бірнеше кірісті қабылдайды және біреуін қайтарады.

Төмендегі шеңбер жасанды нейронды білдіреді. Ол 5 қабылдайды және 1 қайтарады. Кіріс нейронға қосылған үш синапстың қосындысы болып табылады (сол жақта үш көрсеткі).

Суреттің сол жағында біз 2 кіріс мәнін (жасыл түспен) және офсетті (қоңыр түспен бөлектелген) көреміз.

Кіріс деректері екі түрлі сипаттардың сандық көрінісі болуы мүмкін. Мысалы, спам сүзгісін жасау кезінде олар БАС ӘРІПтермен жазылған бірнеше сөзді және «Виагра» сөзін білдіруі мүмкін.

Енгізілген мәндер олардың «салмақтары» деп аталатын 7 және 3 (көк түспен белгіленген) көбейтіледі.

Енді алынған мәндерді офсетпен қосамыз және санды аламыз, біздің жағдайда 5 (қызыл түспен белгіленген). Бұл біздің жасанды нейронның кірісі.

Содан кейін нейрон қандай да бір есептеулерді орындайды және шығыс мәнін шығарады. Біз 1 алдық, өйткені 5-ші нүктедегі сигма тәрізді дөңгелектің мәні 1-ге тең (бұл функция туралы кейінірек).

Егер бұл спам сүзгісі болса, нәтиженің 1 болуы мәтінді нейрон арқылы спам деп белгілегенін білдіреді.

Википедиядан алынған нейрондық желі суреті.

Егер сіз осы нейрондарды біріктірсеңіз, сіз алға таралатын нейрондық желі аласыз - процесс сол жақтағы суреттегідей синапстар арқылы қосылған нейрондар арқылы кірістен шығысқа дейін жүреді.

2-қадам. Сигмоид

Welch Labs оқулықтарын көргеннен кейін, олардың қалай жұмыс істейтінін түсінуге көмектесу үшін нейрондық желілердегі Coursera машиналық оқыту курсының төртінші аптасын қарап шыққаныңыз жөн. Курс математикаға терең енеді және Октаваға негізделген, ал менің қалауым Python. Осыған байланысты мен жаттығуларды өткізіп жіберіп, бәрін жинадым қажетті білімбейнеден.

Sigmoid жай ғана мәніңізді (көлденең осьте) 0-ден 1-ге дейінгі сегментке салыстырады.

Мен үшін бірінші басымдық сигмоидты зерттеу болды, өйткені ол нейрондық желілердің көптеген аспектілеріне қатысты. Мен ол туралы жоғарыдағы курстың үшінші аптасынан бастап бірдеңе білетінмін, сондықтан бейнені сол жерден қарап шықтым.

Бірақ тек бейнелер сізді алысқа апармайды. Толық түсіну үшін мен оны өзім кодтауды шештім. Сондықтан мен логистикалық регрессия алгоритмін енгізуді жаза бастадым (ол сигмоидты пайдаланады).

Бұл бір күнді алды, және нәтиже қанағаттанарлық болуы екіталай. Бірақ бұл маңызды емес, өйткені мен бәрі қалай жұмыс істейтінін түсіндім. Кодты көруге болады.

Мұны өзіңіз жасаудың қажеті жоқ, өйткені ол арнайы білімді қажет етеді - ең бастысы, сигмоидтың қалай жұмыс істейтінін түсіну.

3-қадам Артқа таралу әдісі

Нейрондық желінің кірістен шығысқа дейін қалай жұмыс істейтінін түсіну соншалықты қиын емес. Нейрондық желінің деректер жиынында қалай оқытылатынын түсіну әлдеқайда қиын. Мен пайдаланған принцип деп аталады

Джеймс Лой, Джорджия технологиялық университеті. Жаңадан бастаушыларға арналған нұсқаулық, содан кейін Python-да өзіңіздің нейрондық желіңізді жасай аласыз.

Мотивация:назар аудару жеке тәжірибетерең оқытуды үйренуде мен нөлден күрделі емес нейрондық желіні құруды шештім оқу кітапханасы, мысалы, . Менің ойымша, бұл жаңадан келген Data Scientist үшін түсіну маңызды ішкі құрылымынейрондық желі.

Бұл мақалада менің білгенім бар және ол сізге де пайдалы болады деп үміттенемін! Басқа пайдалы мақалалар:

Нейрондық желі дегеніміз не?

Нейрондық желілер туралы мақалалардың көпшілігі оларды сипаттау кезінде миға параллельдер жасайды. Нейрондық желілерді берілген кірісті тым көп егжей-тегжейге тоқталмай қажетті шығысқа салыстыратын математикалық функция ретінде сипаттау оңайырақ деп ойлаймын.

Нейрондық желілер келесі компоненттерден тұрады:

  • кіріс қабаты, x
  • ерікті сома жасырын қабаттар
  • шығыс қабаты, ŷ
  • жинақ таразыларжәне ығысуларәр қабат арасында В және б
  • таңдау белсендіру функцияларыәрбір жасырын қабат үшін σ ; Бұл жұмыста біз Sigmoid белсендіру функциясын қолданамыз

Төмендегі диаграмма екі қабатты нейрондық желінің архитектурасын көрсетеді (нейрондық желідегі қабаттардың санын санау кезінде әдетте кіріс деңгейі алынып тасталатынын ескеріңіз).

Python-да нейрондық желі класын жасау қарапайым көрінеді:

Нейрондық желіні оқыту

Шығу ŷ қарапайым екі деңгейлі нейрондық желі:

Жоғарыдағы теңдеуде W салмақтары және b ығысулары ŷ шығысына әсер ететін жалғыз айнымалылар болып табылады.

Әрине, салмақтар мен қиғаштықтардың дұрыс мәндері болжамдардың дәлдігін анықтайды. Енгізуден алынған салмақтар мен ауытқуларды дәл баптау процесі нейрондық желіні оқыту деп аталады.

Оқыту процесінің әрбір итерациясы келесі қадамдардан тұрады

  • болжамды шығысты есептеу ŷ, алға таралу деп аталады
  • кері таралу деп аталатын салмақтар мен қиғаштықтарды жаңарту

Төмендегі реттілік диаграммасы процесті көрсетеді:

тікелей таралу

Жоғарыдағы графикте көргеніміздей, алға таралу -  жай ғана есеп, ал негізгі 2-қабатты нейрондық желі үшін нейрондық желінің шығысы келесі түрде беріледі:

Мұны істеу үшін Python кодымызға алға тарату функциясын қосамыз. Қарапайымдылық үшін біз ығысулар 0 деп есептелгенін ескеріңіз.

Дегенмен, бізге болжамдарымыздың «сапа факторын» бағалау әдісі қажет, яғни біздің болжамдарымыз қаншалықты алыс.) Жоғалту функциясыбізге мұны істеуге мүмкіндік береді.

Жоғалту функциясы

Көптеген жоғалту функциялары бар және біздің мәселенің сипаты жоғалту функциясын таңдауымызға байланысты болуы керек. Бұл жұмыста біз қолданамыз квадрат қателерінің қосындысыжоғалту функциясы ретінде.

Шаршы қателердің қосындысы - әр болжанған және нақты мән арасындағы айырмашылықтың орташа мәні.

Оқыту мақсаты - жоғалту функциясын барынша азайтатын салмақтар мен ауытқулар жиынтығын табу.

кері таралу

Енді болжау қателігін (шығынын) өлшегеннен кейін, бізге жол табу керек қатені кері таратужәне салмақтарымыз бен көзқарастарымызды жаңартыңыз.

Салмақтарды және қиғаштықтарды реттеу үшін сәйкес соманы білу үшін біз салмақтар мен қиғаштықтарға қатысты жоғалту функциясының туындысын білуіміз керек.

Бұл талдаудан еске түсіріңіз  - функциясының туындысы функцияның көлбеуінің тангенсі болып табылады.

Егер бізде туынды болса, біз салмақтар мен қиғаштықтарды көбейту/азайту арқылы жай ғана жаңарта аламыз (жоғарыдағы диаграмманы қараңыз). деп аталады градиенттік төмендеу.

Дегенмен, жоғалту функциясының теңдеуінде салмақтар мен ауытқулар болмағандықтан, салмақтар мен қиғаштықтарға қатысты жоғалту функциясының туындысын тікелей есептей алмаймыз. Демек, есептеуге көмектесетін тізбек ережесі қажет.

Уф! Бұл қиын болды, бірақ бізге қажетті нәрсені алуға мүмкіндік берді - салмақтарға қатысты жоғалту функциясының туындысы (көлбеу). Енді біз салмақтарды сәйкесінше реттей аламыз.

Python кодымызға кері таралу (кері таралу) функциясын қосамыз:

Нейрондық желінің жұмысын тексеру

Енді бізде алға және кері таратуды орындауға арналған толық Python коды бар, мысал ретінде нейрондық желімізді алайық және оның қалай жұмыс істейтінін көрейік.


Таразылардың тамаша жинағы

Біздің нейрондық желі осы мүмкіндікті көрсету үшін салмақтардың тамаша жинағын үйренуі керек.

Нейрондық желіні 1500 итерацияға үйретіп, не болатынын көрейік. Төмендегі итерациялық жоғалту сызбасына қарасақ, жоғалту монотонды түрде минимумға дейін төмендейтінін анық көреміз. Бұл біз бұрын айтқан градиентті түсіру алгоритміне сәйкес келеді.

1500 итерациядан кейін нейрондық желіден соңғы болжамды (қорытындыны) қарастырайық.

Біз бұны жасадық!Біздің алға және артқа таралу алгоритмі көрсетті табысты жұмыснейрондық желі және болжамдар шынайы мәндерге жақындайды.

Болжамдар мен нақты мәндер арасында шамалы айырмашылық бар екенін ескеріңіз. Бұл өте қажет, өйткені ол артық орнатудың алдын алады және нейрондық желіге көрінбейтін деректерді жақсырақ жалпылауға мүмкіндік береді.

Қорытынды ойлар

Мен өзімнің нейрондық желіні нөлден бастап жазу процесінде көп нәрсені үйрендім. TensorFlow және Keras сияқты терең оқыту кітапханалары толық түсінбестен терең желілерді құруға мүмкіндік береді. ішкі жұмысМен нейрондық желілерді тереңірек түсіну үшін деректерді зерттеушілерге бастау үшін пайдалы деп санаймын.

Мен жеке уақытымның көп бөлігін инвестицияладым бұл жұмысжәне сізге пайдалы деп үміттенемін!

Мақала ұнады ма? Достарыңызбен бөлісіңіз!
Бұл мақала пайдалы болды ма?
Иә
Жоқ
Пікіріңізге рахмет!
Бірдеңе дұрыс болмады және сіздің дауысыңыз есептелмеді.
Рақмет сізге. Сіздің хабарламаңыз жіберілді
Мәтіннен қате таптыңыз ба?
Оны таңдаңыз, басыңыз Ctrl+Enterжәне біз оны түзетеміз!