| | Две ветви компьютерной эволюции
Две базовые архитектуры компьютеров - последовательная обработка символов по заданной программе и параллельное распознавание образов по обучающим примерам - появились практически одновременно.
 - Концептуально они оформились в 30-40-х годах. Первая - в теоретической работе Тьюринга 1936 г., предложившего гипотетическую машину для формализации понятия вычислимой функции, и затем уже в практической плоскости - в так и не законченном отчете фон Неймана 1945 г. на 101 странице, обобщившего уроки создания первой ЭВМ ENIAC и предложившего методологию конструирования машин с запоминаемыми программами (ENIAC программировался штекерами). Фон Нейман, кстати, использовал не только идеи Тьюринга. Так, в качестве базовых элементов ЭВМ фон Нейман предложил модифицированные формальные нейроны (!) Мак-Каллока и Питтса - основателей нейросетевой архитектуры. В статье, опубликованной в 1943 г., они доказали, что сети из таких пороговых элементов способны решать тот же класс задач, что и машина Тьюринга.
Однако дальнейшая судьба этих вычислительных парадигм напоминает скорее перипетии многочисленных историй про принцев и нищих. Вторая мировая подтолкнула работы по созданию суперкалькулятора.
- Одной из главных задач Лаборатории баллистических исследований Министерства обороны США был расчет баллистических траекторий и составление корректировочных таблиц. Каждая такая таблица содержала более 2 тысяч траекторий, и лаборатория не справлялась с объемом вычислений, несмотря на свой раздувшийся штат: около ста квалифицированных математиков, усиленных несколькими сотнями подсобных вычислителей, окончивших трехмесячные подготовительные курсы. Под давлением этих обстоятельств в 1943 г. армия заключила контракт с Высшим техническим училищем Пенсильванского университета на 400 тысяч долларов для создания первого электронного компьютера ENIAC. Руководили проектом Джон Мочли и Прес Экерт (последнему в день подписания контракта исполнилось 24 года). ENIAC был построен уже после войны. Он потреблял 130 кВт, содержал 18 тысяч ламп, работающих с тактовой частотой 100 кГц, и мог выполнять 300 операций умножения в секунду.
В дальнейшем компьютеры стали широко использоваться и в бизнесе, но именно в этом своем качестве - вычислительных машин. Компьютеры стремительно развивались, идя по пути, начертанному фон Нейманом.
- Первые серийные коммерческие компьютеры IBM-650 появились в 1954 г. (за 15 лет их было продано 1,5 тысячи штук). В том же году был изобретен кремниевый транзистор. В 1961 г. появился его полевой аналог, используемый в микросхемах, а в 1962-м началось массовое производство микросхем. В 1970 г. фирма Intel выпустила свой первый микропроцессор, дав старт микропроцессорной революции 70-х. Всего через четыре года появился первый персональный компьютер Altair по весьма доступной цене 397 долларов, правда, еще в виде набора деталей, подобно тому, как тогда продавались комплекты для радиолюбителей. А в 1977-м появился уже полнофункциональный user-friendly Apple-2. В 1981 г. на рынок PC наконец вышли компьютерные гиганты в лице IBM. В 90-х годах типичный пользователь уже имеет на своем рабочем столе аналог суперкомпьютера Cray-1.
Что касается нейросетевой архитектуры, то, несмотря на многочисленные реверансы в сторону нейронных сетей со стороны классиков кибернетики, их влияние на промышленные разработки вплоть до недавнего времени было минимальным. Хотя в конце 50-х - начале 60-х с этим направлением связывали большие надежды, в основном благодаря Фрэнку Розенблатту, разработавшему первое обучаемое нейросетевое устройство для распознавания образов, персептрон (от английского perception - восприятие).
- Персептрон был впервые смоделирован в 1958 году, причем его обучение требовало около получаса машинного времени на одной из самых мощных в то время ЭВМ IBM-704. Аппаратный вариант - Mark I Perceptron - был построен в 1960 г. и предназначался для распознавания зрительных образов. Его рецепторное поле состояло из матрицы фотоприемников 20x20, и он успешно справлялся с решением ряда задач - мог, например, различать транспаранты некоторых букв.
Тогда же возникли первые коммерческие нейрокомпьютинговые компании. Энтузиазм того героического периода "бури и натиска" был так велик, что многие, увлекшись, предсказывали появление думающих машин в самом ближайшем будущем. Эти пророчества раздувались прессой до совсем уже неприличных масштабов, что, естественно, отталкивало серьезных ученых. В 1969 году бывший однокашник Розенблатта по Высшей научной школе в Бронксе Марвин Минский, сам в свое время отдавший дань конструированию нейрокомпьютеров, решил положить этому конец, выпустив вместе с южноафриканским математиком Пейпертом книгу "Персептроны". В этой роковой для нейрокомпьютинга книге была строго доказана принципиальная, как тогда казалось, ограниченность персептронов. Утверждалось, что им доступен лишь очень узкий круг задач. В действительности критика относилась лишь к персептрону с одним слоем обучающихся нейронов. Но для многослойных нейронных сетей алгоритм обучения, предложенный Розенблаттом, не годился. Холодный душ критики, умерив пыл энтузиастов, затормозил развитие нейрокомпьютинга на многие годы. Исследования в этом направлении были свернуты вплоть до 1983 года, когда они, наконец, получили финансирование от Агентства перспективных военных исследований США (DARPA). Этот факт стал сигналом к началу нового нейросетевого бума.
Интерес широкой научной общественности к нейросетям пробудился после теоретической работы физика Джона Хопфилда (1982 г.), предложившего модель ассоциативной памяти в нейронных ансамблях. Холфилд и его многочисленные последователи обогатили теорию нейросетей многими идеями из арсенала физики, такими как коллективные взаимодействия нейронов, энергия сети, температура обучения и т. д. Однако настоящий бум практического применения нейросетей начался после публикации в 1986 году Дэвидом Румельхартом с соавторами метода обучения многослойного персептрона, названного ими методом обратного распространения ошибки (error back-propagation). Ограничения персептронов, о которых писали Минский и Пейперт, оказались преодолимыми, а возможности вычислительной техники - достаточными для решения широкого круга прикладных задач. В 90-х годах производительность последовательных компьютеров возросла настолько, что это позволило моделировать с их помощью работу параллельных нейронных сетей с числом нейронов от нескольких сотен до десятков тысяч. Такие эмуляторы нейросетей способны решать многие интересные с практической точки зрения задачи. В свою очередь, нейросетевые программные комплексы станут тем носителем, который выведет на технологическую орбиту настоящее параллельное нейросетевое hardware. | |