В большинстве задач на смену традиционным вычислительным системам придут нейронные сети
В ряде задач нейронные сети оказываются на порядки более эффективными, чем традиционные вычислительные системы. Кто знает, из каких еще областей нейросети вытеснят уже так привычные нам компьютеры на четкой двоичной логике?
Современные компьютеры, основанные на фон-неймановских вычислениях для многих применений оказываются слишком слабы, поскольку неэффективно реализуют параллелизм при анализе и синтезе. Нейросети реализуют его существенно более эффективно. Искусственные нейросети реализуют модель человеческого мозга, они не программируются в привычном для алгоритмического программирования смысле, они способны обучаться, производить анализ и синтезировать новые знания, которыми изначально не обладали. На современных супер-компьютерах, сколь-нибудь существенная степень параллелизма достигается только для ограниченного класса задач, когда принципы распараллеливания определяются разработчиком, либо когда на традиционной архитектуре эмулируется нейросеть, и тогда удается реализовать эффективное распараллеливание для широкого класса задач. По моему мнению, сама попытка эмулировать нейросеть на фон-неймановской архитектуре говорит о неком внутреннем кризисе технологий, базирующихся на традиционных вычислениях. Это что-то вроде попытки собрать транзисторный радиоприемник на лампах. Рано или поздно приходит мысль о том, что для реализации нейросети наиболее всего подходят собственно нейроны, упакованный в нейрочипы. Нейрочипы производятся в нескольких странах. Вот, например, обзор нейрочипов, датируемый 2000 годом, а здесь можно ознакомиться с последними моделями нейрочипов, разработанных IBM в 2011 году.
Нейронные сети пока еще являются довольно дорогими технологиями, но по мере дальнейшего прогресса они становятся всё более доступными и распространяются всё шире. Из наиболее значимых применений нейросетей уже сейчас можно выделить прогнозирование курсов валют, цен на сырьё, автоматический трейдинг, оценка рисков невозврата кредитов, постановка диагноза, сжатие видеоинформации, распознавание лиц и даже сочинение стихов... применений очень много и их количество только растет. Поэтому не удивляйтесь, если однажды ваш ребенок скажет вам: "Папа, мой нейрокомпьютер мне сегодня такую сказку рассказал!!!"
Комментарии 6
В этом плане поучительна история конструктивной математики: конструктивисты отвергли логику классических математических рассуждений, т.к. она доказывала существование вещей, которые в принципе нельзя построить на практике. Вместо этого они попытались переписать ВСЮ математику на принципах конструктивизма: доказанным можно считать лишь то, что можно построить. Но, потерпев в этом направлении крах, конструктивизм во многом себя дискредитировал. С другой стороны, конструктивные логики оказались способными решать задачи, которые в рамках классической логики решению не поддавались. Но таких задач отнюдь не большинство.
Резюмируя, можно сказать, что альтернативные модели вычислений действительно неизбежны, в т.ч. по упомянутым в прогнозе причинам. Но им не стоит замахиваться на задачи, с которыми традиционная модель и так успешно справляется. От тех же нейронных сетей трудно добиться жесткого следования строго фиксированным алгоритмам - а таких задач вокруг очень много, начиная от управления лифтами и стиральными машинами и заканчивая ПО по подсчету голосов на выборах.
Согласен, в некоторых областях традиционные модели вычислений останутся лидерами. Таких областей много, но они узкие, хорошо классифицируемы и алгоритмизируемы.
В противоположность им, есть классы задач, которые трудно алгоритмизировать. К примеру, распознавание изображений. Как вы представляете себе программу, которая определит, кто изображен на рисунке - кошка или собака? А вот Cognitive умеет отличать кошку от собаки. Подобных задач великое множество, при этом, цитирую по ссылке: "характерной чертой этих задач было то, что они легко решаются человеком, но при этом не имеют чётких критериев для их описания в виде алгоритма".
Нейросети повторяют модель человеческого мозга, их способность к обучению, анализу и обобщению делает их универсальными, как и мозг. Согласен, некоторые задачи традиционные компьютеры выполнят эффективнее, но обширный класс они не способны решать в принципе. Именно поэтому мне трудно представить будущее без глобального распространения нейросетей.
Нейросети являются моделью мозга, а не полной его копией. Еще ни одна нейросеть не научилась решать задачи с формальной постановкой и строгим алгоритмом решения, в то время как человеческому мозгу это вполне по силам. Нейросети, которые все таки решают такие задачи, решают их совсем не тем способом, как это делает человек. Так что рано говорить об универсальности нейросетей и их всестороннему подобию человеческому мозгу.
Заметьте, я не имею ничего против нейросетей и признаю за ними большой потенциал. Предупреждаю лишь о том, что заявки на универсальность технологии могут обернуться её дискредитацией, несмотря на успехи в отдельных направлениях, как это бывало не раз в истории.
Вспомнил одно исключение: нейросеть может решать задачи с фиксированным алгоритом решения в том случае, если алгоритм в точности совпадает с моделью вычислений нейросети. Это исключение лишь подтверждает правило, поскольку в этом случае пропадает главная фишка нейросети - процесс обучения сети исчезает, заменяясь на принудительное ручное указание фиксированных коэфициентов в каждом узле сети.
> Нейросети являются моделью мозга, а не полной его копией
Согласен, но все же модель строят так, чтобы она реализовала основные свойства оригинала. Я считаю, что нейросети потенциально смогут решать все те задачи, что и человек. Естественно, когда основные параметры будут сравнимы (имею ввиду число нейронов/синапсов и быстродействие).
Если хотите, приведу такое сравнение: протез ноги (а он является моделью) успешно выполняет главную функцию ноги - опорную. Иногда он делает это хуже, чем настоящая нога из "мяса", а иногда и лучше. Протез не всесторонне подобен настоящей ноге, он не болит, не чешется... а может и не надо? =)
> Еще ни одна нейросеть не научилась решать задачи с формальной постановкой
В статье я привел пример решения задач с неформальной постановкой.
На самом деле мне будет очень интересно узнать задачу или вид задач, с которыми нейросети не в состоянии справиться. Можете привести пример? Мне правда важно знать.
В таком случае нейросеть нельзя считать даже одной из моделей нервной системы (строго говоря, никак не доказано, что мы мыслим исключительно с помощью мозга, не привлекая для этого остальную часть нервной системы или еще что-то), поскольку она не отражает процессы роста, специализацию зон, питание, реакции на температуру среды, давление, интоксикацию, другие особенности, существенно влияющие на результат работы мозга. А еще, те способы обучения нейронных сетей, которые мне попадались, не имеют ничего общего с тем, как обучается человек. Соответственно, если нарастить размер нейронной сети и увеличить ее быстродействие, для меня совсем не очевидно, что появится возможность сравнивать нейросети с человеком. Если механизмы обучения у них принципиально разные - откуда уверенность, что итоги обучения можно сравнивать?
В статье я привел пример решения задач с неформальной постановкой.
Я видел статью и пример, но они не связаны с тем, о чем я говорю. (Кстати, из цитаты выпало важное уточнение о строгом алгоритме решения).
Я разве где-то говорил о том, что нейросети не в состоянии с чем-то справиться в принципе? Я говорю, что на данный момент кое-что они делать еще не умеют, а сумеют ли сделать с той же точностью и аккуратностью, что фиксированный алгоритм - большой вопрос.
Например, я не видел нейронных сетей, которые бы считали бухгалтерский баланс и строили сальдово-оборотные ведомости. И сомневаюсь, что увижу, потому что это не практично, хотя заставить нейросеть делать это, наверное, можно.
Еще сподвижники от нейросетей любят делать хитрый трюк. Говоря о принципиальных возможностях, учитывают возможности всех известных типов нейросетей. А на практике часто предпочитают обходиться сетями без обратных связей, поскольку их гораздо легче обучать - сходимость обучения высокая. Но у этого типа нейросетей есть принципиальное ограничение - они не умеют опознавать линейно неотделимые множества. Например, на такой нейросети даже исключающее "или" (XOR) в целочисленных коэффициентах не реализовать.