Алау (машиналық оқыту) - Torch (machine learning)

Алау
Алау логотипі
Түпнұсқа автор (лар)Ронан Коллоберт, Сами Бенгио, Джонни Мариэтоз[1]
Бастапқы шығарылымҚазан 2002; 18 жыл бұрын (2002-10)[1]
Тұрақты шығарылым
7.0 / 27.02.2017 ж; 3 жыл бұрын (2017-02-27)[2]
Репозиторий Мұны Wikidata-да өңдеңіз
ЖазылғанЛуа, LuaJIT, C, CUDA және C ++
Операциялық жүйеLinux, Android, Mac OS X, iOS
ТүріКітапхана машиналық оқыту және терең оқыту
ЛицензияBSD лицензиясы
Веб-сайталау.ch

Алау болып табылады ашық көзі машиналық оқыту кітапхана, а ғылыми есептеу жақтау және а сценарий тілі негізінде Луа бағдарламалау тілі.[3] Ол үшін алгоритмдердің кең спектрі ұсынылған терең оқыту, және сценарий тілін қолданады LuaJIT және астыртын C іске асыру. 2018 жылдан бастап Torch белсенді дамымайды.[4] Алайда PyTorch Torch кітапханасы негізінде құрылған, 2020 жылдың желтоқсан айындағы жағдай бойынша белсенді дамып келеді.[5]

алау

Алаудың негізгі пакеті алау. Бұл индекстеу, кесу, транспозициялау, типке құю, өлшемін өзгерту, сақтау және клондау үшін негізгі процедураларды қолдайтын икемді N өлшемді массивті немесе Тензорды ұсынады. Бұл объект басқа пакеттердің көпшілігінде қолданылады және осылайша кітапхананың негізгі объектісін құрайды. Тензор сонымен қатар математикалық амалдарды қолдайды макс, мин, сома, сияқты статистикалық бөлу бірыңғай, қалыпты және көпмоминалды, және BLAS сияқты операциялар нүктелік өнім, матрицалық-векторлық көбейту, матрицалық-матрицалық көбейту, матрицалық-векторлық көбейтінді және матрицалық өнім.

Оның көмегімен алауды қолдану мысалдары келтірілген REPL аудармашы:

> а = алау.рандн(3,4)> =а-0.2381 -0.3401 -1.7844 -0.2615 0.1411  1.6249  0.1708  0.8299-1.0434  2.2291  1.0525  0.8465[алау.DoubleTensor туралы өлшем 3x4]> а[1][2]-0.34010116549482	> а:тар(1,1,2)-0.2381 -0.3401 -1.7844 -0.2615 0.1411  1.6249  0.1708  0.8299[алау.DoubleTensor туралы өлшем 2x4]> а:индекс(1, алау.LongTensor{1,2})-0.2381 -0.3401 -1.7844 -0.2615 0.1411  1.6249  0.1708  0.8299[алау.DoubleTensor туралы өлшем 2x4]> а:мин()-1.7844365427828

The алау пакет жеңілдетеді объектіге бағытталған бағдарламалау және серияландыру оның барлық пакеттерінде қолданылатын әр түрлі ыңғайлы функцияларды ұсыну арқылы. The mashch.class (сынып атауы, ата-аналық сынып) функциясын құру үшін пайдалануға болады объект фабрикалары (сыныптар ). Қашан конструктор деп аталады, алау инуациялайды және Луаны орнатады кесте пайдаланушы анықтаған метаболикалық, бұл кестені жасайды объект.

Факел фабрикасымен жасалған нысандарда сериялануға болады, егер оларда серияланбайтын объектілерге сілтемелер болмаса, мысалы, Lua коруотиндер, және Луа userdata. Алайда, userdata егер ол кестемен (немесе метатабельмен) оралған болса, сериялануы мүмкін оқу () және жазу () әдістер.

nn

The nn пакет құрылыс үшін қолданылады нейрондық желілер. Ол жалпыға ортақ модульдік нысандарға бөлінеді Модуль интерфейс. Модульдерде a алға () және артқа () мүмкіндік беретін әдіс тамақтандыру және backpropagate сәйкесінше. Модуль көмегімен модульдерді біріктіруге болады композиттер, сияқты Тізбектелген, Параллель және Конкат күрделі тапсырмаларға сәйкес графиктерді құру. Қарапайым модульдер ұнайды Сызықтық, Танх және Макс компоненттердің негізгі модульдерін құрайды. Бұл модульдік интерфейс бірінші ретті қамтамасыз етеді автоматты градиентті саралау. Бұдан кейін а салу үшін мысал келтірілген көп қабатты перцептрон модульдерді қолдану:

> мл.м. = nn.Тізбектелген()> мл.м.:қосу( nn.Сызықтық(10, 25) ) - 10 кіріс, 25 жасырын бірлік> мл.м.:қосу( nn.Танх() ) - кейбір гиперболалық тангенс беру функциясы> мл.м.:қосу( nn.Сызықтық(25, 1) ) - 1 шығу> =мл.м.:алға(алау.рандн(10))-0.1815[алау.Тензор туралы өлшем 1]

Жою функциялары кіші сыныптары ретінде жүзеге асырылады Критерий, ұқсас интерфейсі бар Модуль. Ол сондай-ақ бар алға () және артқа () сәйкесінше, шығындар мен кері бағыттағы градиенттерді есептеу әдістері. Критерийлер жүйке желісін классикалық тапсырмаларға үйрету үшін пайдалы. Жалпы критерийлер болып табылады Орташа квадраттық қате іске асырылған критерий MSECriterion және кросс-энтропия іске асырылған критерий ClassNLLCriterion. Одан әрі Луа функциясының мысалы келтірілген, оны итеративті түрде шақыруға болады мл.м. Тензор енгізу модулі х, мақсатты Тензор ж скалярмен learningRate:

функциясы gradUpdate(мл.м., х, ж, learningRate)  жергілікті критерий = nn.ClassNLLCriterion()  алдын-ала = мл.м.:алға(х)  жергілікті қате = критерий:алға(алдын-ала, ж);   мл.м.:zeroGradParameters();  жергілікті т = критерий:артқа(алдын-ала, ж);  мл.м.:артқа(х, т);  мл.м.:updateParameters(learningRate);Соңы

Ол сондай-ақ бар Стохастикалық градиент нейрондық желіні қолдана отырып оқытуға арналған сынып Стохастикалық градиенттік түсу дегенмен оңтайлы пакетте импульс және салмақтың төмендеуі сияқты көптеген нұсқалар бар регуляция.

Басқа пакеттер

Torch-те жоғарыда аталған ресми пакеттерден басқа көптеген пакеттер қолданылады. Бұлар алаудың парағында көрсетілген.[6] Бұл қосымша пакеттер параллелизм, асинхронды енгізу / шығару, кескінді өңдеу және т.б. сияқты көптеген утилиталарды ұсынады. Оларды орнатуға болады LuaRocks, Lua пакетінің менеджері, сонымен қатар Torch таратылымына кіреді.

Қолданбалар

Алауды Facebook қолданады ИИ Зерттеу тобы,[7] IBM,[8] Yandex[9] және Идиап ғылыми-зерттеу институты.[10] Алау қолдану үшін ұзартылды Android[11] және iOS.[12] Ол нейрондық желілердегі сияқты мәліметтер ағындары үшін аппараттық қондырғылар құру үшін қолданылған.[13]

Facebook кеңейтілген модульдер жиынтығын ашық бастапқы бағдарламалық жасақтама ретінде шығарды.[14]

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ а б «Алау: модульдік машиналық оқыту бағдарламалық кітапханасы». 30 қазан 2002 ж. CiteSeerX  10.1.1.8.9850. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  2. ^ Коллобер, Ронан. «Алау7». GitHub.
  3. ^ «Torch7: машиналық оқытуға арналған матлаб тәрізді орта» (PDF). Нейрондық ақпаратты өңдеу жүйелері. 2011.
  4. ^ Torch GitHub репозитарийі ReadMe
  5. ^ PyTorch GitHub репозиторийі
  6. ^ «Cheatsheet · алау / алау 7 Wiki».
  7. ^ KDnuggets Яң Лекунмен сұхбат, терең оқыту бойынша сарапшы, Facebook AI зертханасының директоры
  8. ^ Хакер жаңалықтары
  9. ^ Янн Лекунның Facebook парақшасы
  10. ^ IDIAP ғылыми-зерттеу институты: Алау
  11. ^ Torch-android GitHub репозиторийі
  12. ^ Torch-ios GitHub репозиторийі
  13. ^ NeuFlow: Көру үшін жұмыс уақытының қайта конфигурацияланатын деректер ағынының процессоры
  14. ^ «Facebook ашық қайнар көздері интеллектуалды құралдармен күресуде». Сымды. 16 қаңтар 2015 ж.

Сыртқы сілтемелер