Машини Больцмана з обмеженою частотою проти багатошарових нейронних мереж


22

Я хотів експериментувати з нейронною мережею щодо проблеми класифікації, з якою я стикаюся. Я зіткнувся з паперами, які розповідають про УЗМ. Але від того, що я можу зрозуміти, вони нічим не відрізняються від наявності багатошарової нейронної мережі. Це точно?

Більше того, я працюю з R і не бачу жодних консервованих пакетів для УЗМ. Я наткнувся на літературу, яка розповідає про глибокі навчальні мережі, які в основному є складеними УЗМ, але не впевнені, чи варто докладати зусиль для їх впровадження в Р. Хтось би мав якісь покажчики? Спасибі


3
Вони є різними , ніж багатошарові мережі навчених з backprop. Ось кілька ресурсів для всіх видів нейронних мереж: stats.stackexchange.com/a/36257/13669
Joe Pete

Відповіді:


21

Перш за все, RBM, безумовно, відрізняються від звичайних Neural Nets, і при правильному використанні вони досягають набагато кращих показників. Крім того, тренування декількох шарів МПМ, а потім використання знайдених ваг як вихідної точки для багатомовного шару NN часто дає кращі результати, ніж просто використання багатошарової NN.

Кращий вказівник, який я можу придумати, - це курс на курсі, який викладає Джеффрі Хінтон, який є одним із людей, відповідальних за УЗД:

https://class.coursera.org/neuralnets-2012-001/class/index

відеоролики на УЗМ та Ознайомлення з автокодерами є цінним навчальним ресурсом для всіх, хто цікавиться цією темою.

Щодо реалізації в R, я не знаю жодного з них, але якщо ви хочете їх реалізувати, краще не використовувати чистий R (якщо ваші дані не є великими). Навчання КУМ займає досить тривалий час, і якщо ви використовуєте чистий R замість R з C, він може значно зрости.


1
Я можу поговорити з питаннями продуктивності R, оскільки в ньому я написав декілька RBM. Переважна більшість часу на обчислення витрачається на множення матриць, які, як правило, у R більш повільні, ніж в інших мовах (можливо, в 3 чи 5 разів). Перекомпіляція R для вашої власної системи за допомогою спеціалізованої BLAS (лінійної бібліотеки алгебри) може допомогти дуже багато, як і переклад повільних частин на C ++ за допомогою Rcpp. Написання односхилого шару RBM насправді досить швидко, що, ймовірно, має сенс кодувати його будь-якою мовою, яка вам найбільше комфортна, перш ніж намагатися оптимізувати швидкість.
Девід Дж. Харріс

@David J. Harris Ви поділилися будь-якими своїми реалізаціями в R? Я хотів би поглянути на них.
Зак

1
@Zach На даний момент я досить зайнятий, але я побачу, що я можу зробити щодо відкритих джерел пошуку в майбутньому. Ви також можете надіслати мені електронну пошту за адресою в моєму профілі, щоб отримати копію того, що у мене є, якщо ви не заперечуєте проти сортування недокументованого / напів готового проекту.
Девід Дж. Харріс

8

У R ви можете використовувати neuralnet та RSNNS (що забезпечує інтерфейс до симулятора нейронної мережі Штутгарта ), щоб підходити до стандартних багатошарових нейронних мереж, але існують відмінності в RBM.

Щодо впровадження глибоких нейронних мереж в R, я думаю, що єдиною вагомою стратегією було б інтерфейс існуючих реалізацій FOSS, що, як правило, є набагато кращим рішенням, ніж просто перевтілення речей самостійно (я ніколи не розумів, чому всім потрібно винаходити колесо). R пропонує багато функціональних можливостей для цього, і ви можете використовувати обробку даних R зі швидкістю та готовістю до використання існуючими рішеннями. Наприклад, MDP може взаємодіяти з можливостями взаємодії Python / R, див., Наприклад, цей документ .

Редагувати: Ендрю Ландграф зі статистично значущого надає деякий код R для RBM .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.