ailev.ru

Обсуждение

В архиве: 19 комментариев.

Читать и комментировать в ЖЖ ↗

Имя не сохранено · 31 июля 2015

Комментарий

Что-то опять у вас всё в кучу, и кони, и люди. "Перцептро́н, или персептрон[nb 1] (англ. perceptron от лат. perceptio — восприятие; нем. perzeptron) — математическая или компьютерная модель восприятия информации мозгом (кибернетическая модель мозга), предложенная Фрэнком Розенблаттом в 1957 году и реализованная в виде электронной машины «Марк-1»[nb 2] в 1960 году. Перцептрон стал одной из первых моделей нейросетей," Описание его в 69м году не является чем-то новым. Более того, нет ни одной отсылки к тому, что у "кристаллоблока о 88 тысячах ячеек" есть слои. Так что, я думаю, это был персептрон. >про "науку нейронных сетей" (http://www.quora.com/What-is-the-theory-of-neural-networks/answer/Anatoly-Levenchuk) -- науки там нет Наука там есть, и в достаточном количестве. Расчёт любого градиента в нейросети -- это наука, как бы вам не хотелось это называть инженерией. Вычислительные численные методы -- это наука. Вас смущает "неточность"? Ну так решайте точными методами, пожалуйста. Ах, не можете? Вот видите, просто для точных задач набор методов ограничен. Ненаучен выбор именно такой нейросети? Ну тогда и сама наука ненаучна, потому что выбор методов решения математических задач ненаучен (а тем более, ненаучен выбор методов доказательства теорем). Выбор критерия оптимизации (метрики) ненаучен? Наоборот, это часть науки, ведь кратко и 100%-точно сформулировать задачу нельзя, поэтому и другие научные методы не работают. Не нравится невыпуклость и отсутствие гарантии сходимости? Обеспечивайте выпуклость выбором критерия оптимизации -- тогда не только сходимость, но и попадание в глобальный минимум гарантировано. Были работы и про выбор нелинейности, и про сходимость, и замечательная работа про связь НС с probabilistic models, позволяющая определить уверенность нейросети в терминах вероятности ( http://mlg.eng.cam.ac.uk/yarin/blog_3d801aa532c1ce.html ). Даже основе нейросетей -- тому, что Deep Learning стал работать в 2006м, но не работал до этого -- обязаны именно науке, а не "быстрым компьютерам и видюшкам". Было получено именно научное знание о сходимости, а не инженеров били яблоками по голове, пока они случайно не наткнулись на сходящийся метод. Единственная "не наука" здесь -- это когда очередной любитель начинает применять нейросети, не понимая внутренние мат. модели -- вот тогда нейросеть для него "эвристика", а нейросеть сводится к инженерии. Если бы было дело в инженерии, то почему же качество распознавания речи не росло с 1998й по 2008й год? Компьютеры становились быстрее, GMM-HMM модели больше... а точность не росла (уж не говоря о том, что GMM и HMM тоже мат. модели, а не инженерами придуманные алгоритмы). В общем, как показывает практика, такие инженеры-любители могут только повторять имеющиеся решения, но не придумывать новые. Использовать, как обезьяна палку. Да, тогда это не наука. (Кстати, подозреваю, на хакатоне действия большинства, если не всех участников как раз попадали под критерий обезьяны с палкой -- победила обезьяна, что смогла быстрее всего палку раскрутить и заточить с удачной стороны, ведь для научного подхода нужно время.) Скорее, я бы описал Deep Learning как смесь науки и инженерии. Наука обеспечивает методологию и выбор нейросети, а инженерия обеспечивает построение и развёртывание системы на имеющемся железе. Уберите отсюда науку -- и вы не сможете решать новые задачи. А решение старых задач -- применение уже изученных научных методов.

Имя не сохранено · 31 июля 2015

Комментарий

Если книжки - дело неблагодарное, то может статья (статьи)? Вот здесь ищем авторов: http://injoit.org

Анатолий Левенчук · 31 июля 2015

Комментарий

Ну, у вас тоже в куче кони и люди ))) 1. Роман "Открытие себя" не 69, а в 67 году был написан -- я это указал. Идея глубоких архитектур была давно, просто много лет не удавалось научить глубокую сетку. Первая глубокая сетка была научена как раз на русском языке -- вот исторический обзорчик по глубокому обучению (http://people.idsia.ch/~juergen/deep-learning-overview.html, первую глубокую нейронную сетку по этой версии задумал в 1965 и восьмиуровневую научил в 1971 А.Г.Ивахненко в Киеве, в институте Глушкова, его работы легко гуглятся), Я писал об этом почти год назад. Более того, сам Савченко работал в институте кибернетики в Киеве (https://ru.wikipedia.org/wiki/%D0%A1%D0%B0%D0%B2%D1%87%D0%B5%D0%BD%D0%BA%D0%BE,_%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87), так что вполне мог быть знаком с идеями глубоких сетей лично. 2. Про инженерию нейронных сетей как науку: нужно разделять науку "предмета" и науку собственно инженерии, я подробней пишу об этом в учебнике http://techinvestlab.ru/systems_engineering_thinking (раздел 3 "инженерия и наука" с подразделами "инженерия не научна" и "инженерия научна" -- там 14 страниц текста, начиная со страницы 84). Там довольно подробно, но начало одного подраздела выглядит так: Предмет инженерии и научные предметы для инженерных объектов Нужно различать предмет самой инженерии (engineering) и предметы, изучающие объекты инженерии — механику, электрику, компьютерную науку и т.д. Инженерия (в том числе системная инженерия) описывает то, как работают инженеры. Инженерная наука (engineering science) даёт описание того, что делают люди в инженерном проекте. Другие предметы и другие науки описывают поведение инженерных объектов, то, как работают они: механические устройства, электрические схемы, компьютерные программы. Наиболее просто понять разницу между такой “наукой про инженерный объект” и самой инженерией можно на примере computer science (компьютерной науки) и software engineering (программной инженерии). Наука про сами нейронные сетки как системы только-только появляется (и я указал на эволюционную физику: там пытаются ответить на вопрос, почему вообще глубокая нейронная сетка работает), и она не полностью математична, там сильно пахнет и физикой тоже. Тем не менее, при создании архитектуры нейронной сетки нет ответов на вопросы -- сколько будет оптимально слоёв, сколько в них нейронов, какого типа должны быть слои и т.д.. Эти архитектурные вопросы в каждом проекте решаются не "формулой" и оптимизацией, а эвристически. Разговоров про "генерацию нейронных сеток", "метапрограммирование" и т.д. много, а дел пока мало. А вот про собственно инженерию нейронных сеток (как начать с требований, пройти через архитектуру, получить сетку и проверить её работу) науки пока нет, предмет отсутствует. Вот я написал, наука начала появляться ))) Хотя я уже встречал на хакатоне людей, которые абсолютно осознанно применяли к построению сетки системноинженерное мышление -- то есть прикладывали к самой инженерии какое-то знание. Так что ждать учебничков именно по инженерии нейронных сетей (а не математике/физике нейронных сетей -- почувствуйте разницу) недолго осталось. И, кстати, инженерия часто опережает науку: сначала инженеры строили мосты, а затем через много столетий разработали сопромат.

Ответ на комментарий

Анатолий Левенчук · 31 июля 2015

Комментарий

Я вот положил статью на arxiv.org, даже на английском. А откликов пришло на посты в блоге на эту тему гораздо больше. Блог почему-то эффективней оказывается. Книжка хороша, только чтобы студентам выдать какой-то один текст, где всё более менее собрано и по полочкам разложено. Пока же я не преподаю инженерию нейронных сетей, книжку мне писать бессмысленно. Но вот ежели кто будет такую инженерию преподавать, в этот момент книжка и должна появиться. А статьи -- без разницы, в журнале или в блоге. Хотя если ты формальный учёный, то тебе индекс цитируемости важен, за него гранты дают )))

Ответ на комментарий

Имя не сохранено · 31 июля 2015

Комментарий

Вот АВМ для сетки "то что доктор прописал" :) Зачем цифровым способом делать то, что может делать аналоговая схема из нескольких транзисторов? Всё что сложного в таком подходе это коммутационная матрица.

Имя не сохранено · 31 июля 2015

Комментарий

>так что вполне мог быть знаком с идеями глубоких сетей лично. Да, тогда что-то в этом есть. >Тем не менее, при создании архитектуры нейронной сетки нет ответов на вопросы -- сколько будет оптимально слоёв, сколько в них нейронов, какого типа должны быть слои и т.д.. В большинстве ответы известны, выводятся научными методами, и их вполне просто понять даже для гуманитария: Чем больше слоёв и нейронов, тем выше качество обучения, но медленнее скорость обучения (в DNN -- экспоненциальная зависимость от числа слоёв), больше склонность компьютера находить "совпадения" вместо "закономерностей", и тем более мощный компьютер нужен. Я бы вам так и рекомендовал ответить товарищу на quora. В других вопросах, наоборот, проблема в фундаментально невычислимом характере мира. "Какого типа должны быть слои" -- сродни вопросу, каким распределением лучше аппроксимировать данные? Гауссовым, нормальным, или каким-либо ещё неизученным? Или вопрос, каким способом лучше всего считать пи приближённо? Настоящая проблема в том, что в большинстве практически важных задач, точное решение текущими техническими средствами не получить (скажем, для маленьких нейросетей можно точно построить обратную матрицу, но для матриц миллион на миллион это уже на практике не сделать). Но, отдавая все такие задачи на откуп инженерии, вы игнорируете прикладную науку, отрасль математики, под названием "вычислительные методы". Почему вы считаете, что она является частью инженерии? Вам не кажется странным, что, согласно вашему определению, задача нахождения корней квадратного уравнения будет частью инженерии или науки в зависимости от того, считаем мы с помощью компьютера или на листочке? >Я указал на эволюционную физику: там пытаются ответить на вопрос, почему вообще глубокая нейронная сетка работает Вы опять же по непонятным мне причинам ищете очевидную эзотерику и игнорируете очевидный научный ответ на этот вопрос: нейросеть -- это метод последовательных приближений (аналог метода ньютона), который ищет приближённо матрицу заданного вида, минимизирующую функцию потерь на данном классе объектов. Вот возьмите метод ньютона, который находит решение квадратного уравнения. Его устройство, по вашему, это тоже инженерия? https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%9D%D1%8C%D1%8E%D1%82%D0%BE%D0%BD%D0%B0 Или вас интересует вопрос, почему одни модели обладают предсказательной (решательной) силой большей, чем другие модели, и как автоматически находить методы, обладающие большей предсказательной силой, чем другие? Увы, в общем виде задача нахождения оптимальной функции на пространстве всех функций невычислима. И наука давно это доказала (см. теорему Поста об останове), хотя и есть до сих пор люди, которые верят в то, что "просто наука для этого ещё не появилась".

Ответ на комментарий

Анатолий Левенчук · 31 июля 2015

Комментарий

Если про метамоделирование -- это наука, если моделирование в рамках известной модели -- это вполне может быть частью инженерии (после чего, если это инженерия, модель используется для получения целевой системы). Про "статистику" и "решение уравнений" -- там не всё так просто. Я вот уже писал, что есть довольно много физиков, которые жалеют о том, что математики перестали изучать физику (например, вот тут -- http://modeling.asu.edu/R&E/Notes_on_Modeling_Theory.pdf). Ну, и физику эзотерикой называть нехорошо! То, что эвристики разного уровня применяются повсеместно, я уже писал, и исследователей именно этого вопроса (например, Billy Koen, да и тот же Lenat с его Eurisco) тоже поминал. Эвристики как-то не принято называть "наукой", большой теории в них нет. А вы говорите о каких-то очень общих идеях типа градиентного спуска (почему-то игнорируя современные аспекты проблемы, например обсуждения типа https://charlesmartin14.wordpress.com/2015/03/25/why-does-deep-learning-work/), а далее чисто эвристическую работу с попытками подобрать параметры и подкрутить как-то алгоритмы почему-то обзываете "прикладной наукой". Никакой особой науки в этом нет, чистая инженерия и изобретательство. Ибо не порождается новых компактных способов описания мира. У меня, кстати, в учебничке перед разъяснением чем предметная наука отличается от инженерной науки есть ещё некоторый раздел про науковедение. Там тоже много чего интересного происходило последние годы. И, конечно, все эти тонкие онтологические различения и ярлыки очень условны. Но когда вам нужно на хакатоне модифицировать архитектуру нейронной сетки, вы для этой модификации немного можете предложить идей "из теории" -- точнее, вы можете предложить слишком много идей, но на сегодняшний момент совершенно непонятно, какие из них сработают на практике (т.е. это всё эвристические идеи, а не теории).

Ответ на комментарий

Имя не сохранено · 31 июля 2015

Комментарий

Ну ок, понял вашу идею: применение науки не является наукой. Отсюда и утверждение "науки в нейросетях нет", с которым хочется поспорить, потому что технология нейросетей основана на научных работах -- т.е. это и есть "наука", которая есть в нейросетях. Вот такой парадокс... >Ну, и физику эзотерикой называть нехорошо! >А вы говорите о каких-то очень общих идеях типа градиентного спуска (почему-то игнорируя современные аспекты проблемы, например обсуждения типа https://charlesmartin14.wordpress.com/2015/03/25/why-does-deep-learning-work/) "Эзотерика — учения о скрытой мистической сути объектов мира и человека; область изучения эзотерики — процессы, происходящие во Вселенной, синхронно отражающиеся в глубинах человеческой души." Если взять переносное значение ("учение о скрытой мистической сути объектов") -- то это оно и есть. Объяснить механизм работы одной системы существованием (!) другой системы с похожими элементами. "Принцип подобия" из астрологии в чистом виде. Ок, вы объяснили чистый SGD, ссылаясь на работы физиков 70х годов, у которых природный объект делал SGD. Ну, теперь объясняйте, почему какой-нибудь метод обучения типа RMSProp сходится таким же образом -- что вы теперь будете искать за природный объект? Понимаете, я-то как раз в курсе "современных аспектов проблемы", да и термодинамику ещё чуть-чуть помню, поэтому понимаю, что Лекун скорее стебётся, а автор статьи тупо рекламирует свой консалтинг. Выглядит это и правда весьма мистично -- незнакомые с deep learning люди внезапно испытывают просветление от такой удивительной аналогии. На то и расcчёт.

Ответ на комментарий

Анатолий Левенчук · 31 июля 2015

Комментарий

Вот сейчас у нас должен бы начаться спор о роли метафор, аналогий и т.д., я должен был бы сослаться на проект Rosetta stone теоркатегорщиков (http://arxiv.org/abs/0903.0340) и книжку "Гедель, Эшер, Бах. Эта бесконечная гирлянда" by Douglas Hofstadter, работы Лакоффа по метафорам, но вы и сами всё знаете, и смотрите на любые сопоставления и мэппинги как на астрологию. А я наоборот, смотрю на такое как на основу мышления. Ну что же, мы тут не сходимся в нашем отношении к науке, её предмету и методам. Бывает. При этом, стыдно сказать, я как физхимик термодинамику сдавал, но с тех пор к ней не возвращался. Методом молекулярных орбиталей и то больше пришлось заниматься, чем термодинамическими расчётами.

Ответ на комментарий

Имя не сохранено · 1 августа 2015

Комментарий

Не, я согласен, что именно ассоциативное мышление помогает человеку находить нетривиальные решения задач (когда используется совместо с логическим мышлением). Но я не согласен с тем, чтобы аналогии использовать как доказательства чего-либо. Для меня фраза "нейросети -- это спиновые стёкла" звучит как попытка обоснования, а не способ поиска знаний с помощью ассоциаций. Так что дело не в отношении, а скорее в реакции на те или иные слова и фразы. Дело ещё в том, что у гуманитариев ассоциативное мышление является по сути единственным способом рассуждать о мире, поэтому подобные ассоциативные суждения для меня сразу начинают звучать как-то "гуманитарно" и совсем уж ненаучно. А иногда даже слишком по-журналистски со ссылкой на известную картинку, где журналист всё перевирает.

Ответ на комментарий

Имя не сохранено · 2 августа 2015

Комментарий

Я вот подумал, пожалуй, вот какая граница науки и инженерии: если процесс работы включает в себя экспериментирование с потенциально непредсказуемым результатом, то здесь и начинается наука. Будь то практический анализ скорости алгоритмов -- который относится к computer science, или тестирование качества работы нейросетей -- наука о нейросетях, или даже сталкивание частиц на ускорителе -- ядерная физика. Так что как раз подбор весов и добавление регуляризации -- это уже и есть наука, а вовсе не инженерия.

Ответ на комментарий

Анатолий Левенчук · 3 августа 2015

Комментарий

Нет, для меня вопрос о целях экспериментирования. Если подтвердить, что какое-то описание верно -- это наука, а если проверить, работает что-то или нет, то инженерия. Более того, в обоих случаях понятие "эксперимента" предполагает хотя бы примерное представление об ожидаемом результате, иначе это называется не "эксперимент", а "игра" (тоже вполне себе респектабельное занятие, но совершенно другого сорта, чем наука и инженерия).

Ответ на комментарий

Анатолий Левенчук · 3 августа 2015

Комментарий

Цифра нужна для того, чтобы парой кликов мышки менять архитектуру. Аналоговую архитектуру менять очень и очень сложно. А универсальной сетки ещё не придумали. Во времена персептронов аналоговых примеров было много, только учились они плохо. А для хорошего обучения нужно менять архитектуру. Вот аналоговые сетки и померли окончательно. Нейроморфные чипы даром что цифровые, но страдают тем же: если они не на FPGA, то перестраивать архитектуру замучаешься. Опять же: шумы, тепловые дрифты и все прелести аналоговых машин -- люди там уже плавали, всё знают. Это как с аналоговыми музыкальными синтезаторами, у которых жЫрный звук, но которые всё равно предпочитают сейчас моделировать цифрой в силу описанных причин.

Ответ на комментарий

Анатолий Левенчук · 4 августа 2015

Комментарий

Замысел экспермента (stakeholder needs) это физика, а создание экспериментальной установки (начиная с требований) -- инженерия, конечно (без разницы ведь -- собачью будку делать или адронный коллайдер, небоскрёб или ракету на Марс -- это инженерия).

Ответ на комментарий

Имя не сохранено · 4 августа 2015

Комментарий

Т.е. одно и то же действие может относиться всё же одновременно и к науке, и к инженерии? Например, а что, если установка простая (яблоко падающее, скажем), и никаких требований создавать не надо?

Ответ на комментарий

Анатолий Левенчук · 6 августа 2015

Комментарий

Если что-то не может относиться одновременно к науке и инженерии, то это будет означать полную отвязанность науки от инженерии и наоборот. Такого не бывает. Онтологически разные описания мира, разные базовые целеполагания, разные отношения к деятельности возникают у стейкхолдеров, исходя из разных интересов этих стейкхолдеров. Так что разделение науки и инженерии важно (отвечают разным интересам), но это совсем не запрещает их перемешивать в жизни -- но всё-таки разные стейкхолдеры не только описывают жизнь по-разному и преследуют разные цели, но часто и согласуют цели и действия друг с трудом, согласуют и описания мира. Так что вполне инженер и учёный могут договориться по поводу экспериментальной установки и требованиям к ней. И вообще, инженер и учёный -- это темпоральные части какого-то человека, так что и тут не нужно путать функциональные объекты и физические объекты. О чём вообще спор-то? Сейчас залезем в онтологические дебри, а для доказательства или опровержения какого тезиса? Подведение под какую-то классификацию важно или бюрократически (пенсию там получить, или скидку) или содержательно (понимать, какой аппарат включать в голове, каким учебником пользоваться, какие инструменты применять). Вам что тут нужно? Сказать, что любой человек и наукой может заниматься и инженерией? Это и так понятно. Стейкхолдер -- это роль, человек -- носитель роли. Бывает и сложней: роли назначаются на какое-то оргместо, а уж человек заполняет это оргместо. Так что можно описывать, что начальник отдела у нас инженер и учёный в одном флаконе, а можно и про Иван Иваныча так сказать. За подробностями -- в ISO 15926, как пример. Но если нужно сделать установку по измерению тяги в EMDrive, то нужно заняться инженерией. А требования скажет физик-теоретик. Да, они оба могут быть в одном лице, причём один талантлив, а другой туп -- темпоральные части, они такие.

Ответ на комментарий

Анатолий Левенчук · 12 августа 2015

Комментарий

Сам Leon Bottou путаник тот ещё. Например, он путает в тех же слайдах computer science и software engineering (описка ли это у него, сознательная ли позиция, или и впрямь путает -- не знаю). Machine learning сейчас бурно цветёт, люди скачут по позициям как зайчики -- так что ничего страшного, что идёт путаница. Но когда вы собираетесь кого-то научить этой дисциплине, тут нужно будет разбираться, чему именно учите.

Ответ на комментарий