?

Log in

No account? Create an account
теперь еще и переводы - Поклонник деепричастий [entries|archive|friends|userinfo]
Anatoly Vorobey

[ website | Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| English-language weblog ]

теперь еще и переводы [сент. 29, 2016|02:26 pm]
Anatoly Vorobey
[Tags|]

Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation

Известная максима Марка Андриссена гласит: "ПО пожирает мир" (т.е. программное обеспечение подминает под себя и заменяет собой все больше физических видов деятельности в "реальном мире").

А в последние несколько лет у нас складывается порядок, при котором глубокое обучение пожирает ПО.

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

У меня несколько смешанные чувства от таких новостей. Модели, которые строят нейронные сети, фундаментально намного более непроницаемы, чем методы, которые они заменяют - даже в такой области, как машинный перевод, где лучшие до сих пор подходы уже были статистическими и основанными на тренировке языковых моделей. Есть методы визуализации того, что учат разные слои сети, но они, когда работают, дают только очень приблизительное понимание. Если нейронные сети - это локальный тупик, т.е. есть какой-то максимум, которого они достигнут, но дальше этим путем не пройти, то на дороге к этому максимуму мы не получим полезной информации, которая может помочь в других подходах; мы получим только множество отлично работающих нейронных сетей, у каждой своя архитектура и ухищрения настройки, которые не складываются в общую теорию. Так мне кажется, по крайней мере, из моего дилетантского кресла.

Но очень круто, конечно.
СсылкаОтветить

Comments:
[User Picture]From: trurle
2016-09-29 11:41 am
Как мне кажется, проблема возникнет даже если тупика нет.
Представим себе что завтра будет создана нейронная сеть, способная на семантическую реконструкцию изображений - то есть принципиально решена проблема автономно управляемого автомобиля. Каким образом можно будет убедиться что эта нейронная сеть работает с приемлемым количеством ошибок?
(Ответить) (Thread)
[User Picture]From: mopexod
2016-09-29 11:54 am
Практикой? :)
(Ответить) (Parent) (Thread)
[User Picture]From: reyda
2016-09-29 11:56 am
Так же, как и в других подобных задачах: лабораторные и полевые испытания, а затем их анализ.

Ну и нейронные сети анализирующие деятельность других нейронных сетей. А потом и управляющие ими.

Если мы вскарабкались на одну вершину (локальный максимум), то это еще не предел и не тупик, рядом еще может оказаться много других вершин.
(Ответить) (Parent) (Thread)
[User Picture]From: mikhai1_t
2016-09-29 05:34 pm
А как можно убедиться, что вы работаете с приемлемым количеством ошибок ?
(Ответить) (Parent) (Thread)
[User Picture]From: trurle
2016-09-29 10:03 pm
Для конвенциональных программ существуют методики структурированной разработки и тестирования, неприменимые к нейронным сетям.
(Ответить) (Parent) (Thread)
From: ztarlitz
2016-10-03 08:18 pm
Ну это просто инструменты, ясно что циркулем гвозди неудобно забивать. В конечном итоге важны только две вещи чтобы программа выполняла свою функцию, и делала это эффективно, какие для этого инструменты юзать не важно
(Ответить) (Parent) (Thread)
[User Picture]From: trurle
2016-10-03 08:19 pm
Нйеронные сети не образуют программы в обычном смысле этого слова.
И инструменты отладки для них неизвестны.
(Ответить) (Parent) (Thread)
From: spiritualape
2016-09-29 11:43 am
Все правильно. Это дорога для лентяев. Но есть задачи, которые иначе решать ну очень долго :(
(Ответить) (Thread)
[User Picture]From: amarao_san
2016-09-29 11:55 am
Период первичного накопления знаний. В какой-то момент техник по тюнингу этих сетей станет так много, что в них кто-то (нейронные сети) начнут замечать закономерности.
(Ответить) (Thread)
From: tmg_tt
2016-09-29 11:59 am

почему тупик?

почему может быть тупик в DNN?
там пока все классно выглядит же - больше данных вливаешь, лучше ответ получаешь. Причем увеличение кол-во данных не означает необходимости увеличения сети.

единственное - статически анализировать нельзя, ну те действительно нельзя быть уверенным что в этом одном кейсе поведение будет как и ожидалось, прогнав сеть через какой-нибудь статический анализатор, только создать кейс и получить \ проверить, что ответ совпадает с ожиданием.
Если нет - переобучать :(
(Ответить) (Thread)
[User Picture]From: avva
2016-09-29 12:03 pm

Re: почему тупик?

Потому что DNN-системы пока что демонстрируют все большие успехи в достижении заданной цели, но даже не приближаются к тому, чтобы построенные модели сохранили релевантность для близких по духу целей или типов данных; обучение с помощью DNN кажется в этом смысле не-гибким на довольно фундаментальном уровне, и очень скромные результаты по ограниченному transfer learning (которые мы к тому же не особо понимаем) в этом смысле мало что меняют.
(Ответить) (Parent) (Thread)
[User Picture]From: akimka
2016-09-29 02:58 pm

Re: почему тупик?

Я все же более оптимистичен. Вот по каким причинам:

1. Сохраняют релевантность. Если посмотреть на примеры моделей, натренерованных на имджнете они показывают очень хорошие результаты на совершенно других задачах уже не связанных с классификацией самого имиджнета.

http://cs231n.github.io/transfer-learning/

Грубо говоря использование примитивов для того, чтобы не нужно было обучать слои низких уровней.

2. Обучение с помощью DNN является как раз очень гибким, проблема лишь в том, что те DNN, что мы знаем очень ограничены по ресурсам и особенно в плане сбора информации.

Увы, то что создала гениальная эволюция - это в одном законченном организме и нейронные сети И метод сбора информации сочетающий в себе разные уровни абстракций и все более усложняющиеся методы сбора этой информации, до этого еще далеко. Но, мы имеем право полагать, что дело всего лишь в вычислительном объеме и лет через 10 это уже не будет проблемой.
(Ответить) (Parent) (Thread)
[User Picture]From: avva
2016-09-29 07:31 pm

Re: почему тупик?

1. Там кажется немного другое - предпоследний слой DNN используется как набор фичеров для SVM. Т.е. это не "мы натренировали нейронную сеть на одних данных, и ее модель теперь помогла нам натренировать другую сеть на совсем других данных, обходясь намного меньшим кол-вом примеров" - это был бы transfer learning, использующий "наработанный" опыт DNN для DNN же. Но я согласен, что то, что там описано, очень интересно и впечатляет.

2. Меня весьма впечатлила и в значительной степени убедила статья https://arxiv.org/pdf/1604.00289.pdf
основной мой скептицизм по поводу гибкости DNN оттуда.
(Ответить) (Parent) (Thread)
[User Picture]From: akimka
2016-09-29 08:34 pm

Re: почему тупик?

Ну нужно понимать, что нам просто из-за ограниченных пока вычислительных мощностей недоступен тот уровень абстракции, с которым легко справляются животные.

Ну и еще скажем так вот у нас недоступно, опять таки, из-за вычислительных ограничений, более гибкая настройка как активационных функций, так и гиперпараметров, т.к. это доорого.

Грубо говоря мы можем пока что прогнать туда-сюда веса используя очень простые вычисления. Природа умеет покруче ;)

То есть хочется сказать, что усе будет, надо немного подождать.

Приколькое видео в тему: https://www.youtube.com/watch?v=hc2Zj55j1zU

2. Я читал эту статью. Проблема в том, что нужно четко понимать и разделять проблему inferred знаний. Грубо говоря в куче даже казалось бы абстрактных проблем огромная часть проблемы уже решена.

Да и вообще огромный прорыв ожидается мной, когда мы перейдем через автоэнкодеры к системам, которые умеют сами классифицировать и накапливать информацию. Т.е. когда unsupervised и supervised подходы объединяться.

Ладно, что говорить, работать надо ;)
(Ответить) (Parent) (Thread)
[User Picture]From: a_konst
2016-09-29 03:38 pm

Re: почему тупик?

Технологии, которые мы понимаем, мы можем сохранить, законсервировать, кому-то передать.
Результат обучения нейронной сети технически можно сохранить, но со стороны кажется, что устойчивость и надежность этого сохранения на много порядков ниже.
Для программы , алгоритм которой понятен, можно напечатать на бумаге саму программу или просто алгоритм, могут быть люди, (и много людей). которые изучили алгоритм и поняли его, и могут написать по памяти.
С результатами обучения нейронной сети все будет очень грустно если результат обучения испортится в нескольких байтах (или нескольких килобайтах) и при этом массив исходных данных для обучения как-то окажется недоступен.

Учитывая, как быстро на практике устаревают современные средства хранения информации, это очень вероятно.

Если какое-нибудь ноу-хау "старого" машинного перевода еще можно было сохранить в виде, в котором его потом можно переиспользовать, даже если программа-клиент утрачена или перестала работать на новой архитектуре, то с DNN это гораздо менее реально, навскидку - без очень специального ПО результат обучения - просто куча байт, недоступная пониманию человека.
(Ответить) (Parent) (Thread)
[User Picture]From: akimka
2016-09-29 03:46 pm

Re: почему тупик?

В том-то и дело, что при утрате даже существенной части информации об активации сеть все равно будет работать. И более того, грамотно спроектированная сеть (которая все время обучается) решит такую проблему сама по себе.
(Ответить) (Parent) (Thread)
[User Picture]From: grey_kristy
2016-09-30 08:15 am

Re: почему тупик?

Ну обучим заново на новых данных - какая проблема?
Если есть актуальная задача, значит есть и данные на которых можно обучаться
(Ответить) (Parent) (Thread)
From: (Anonymous)
2016-09-29 12:17 pm

Мы сами нейросети.

Если нейросети это и локальный тупик, то максимум этого тупика лежит выше возможностей человеческого мозга.
(Ответить) (Thread)
[User Picture]From: avva
2016-09-29 12:23 pm

Re: Мы сами нейросети.

С чего бы это?
(Ответить) (Parent) (Thread)
From: (Anonymous)
2016-09-29 12:32 pm

См. заглавие.

Человеческий интеллект основан на нейросети. Следовательно, нейросеть может быть по крайней мере настолько же умной, как человек.
(Ответить) (Parent) (Thread)
[User Picture]From: vieni
2016-09-29 02:21 pm

Re: См. заглавие.

Ну всё-таки строение и способ обучения человеческого мозга, и строение и способ обучения ANN не то чтобы очень уж похожи. Хоть метафора названия и происходит от нейросетей мозга, это метафора, а не буквальная имплементация человеческого мозга. Взять хотя бы catastrophic interference.
(Ответить) (Parent) (Thread)
From: (Anonymous)
2016-09-29 02:35 pm

Да, и это плохо.

Разновидностей искусственных нейросетей столько, что я даже грубой их классификации не знаю. Мне это не интересно, это прикладуха. Но человеческий интеллект это безусловно нейросеть, один из возможных её видов, и он может быть смоделирован искусственной нейросетью. Я позволю себе повторить своё утверждение, которое уже писал в этот блог, что синапсы этой нейросети должны обучаться предсказывать свой входной сигнал. Прошу извинить за повтор, мне надо, чтобы эта мысль проникла в умы специалистов. А она всё как-то отскакивает.
(Ответить) (Parent) (Thread)
[User Picture]From: akimka
2016-09-29 03:03 pm

Re: Да, и это плохо.

Это разумеется верно, но основная проблема, которая офигенно решается любым животным это feature engineering - т.е. превращение информации вокруг себя в обучающий материал. У меня вот ребенку 2 года я офигеваю насколько природа все продумала - ВСЕ ВРЕМЯ пока он не спит он обучается. Просто постоянно расширяя границы возможностей и буквально засасывая информацию вокруг себя. Тут уж хочется сказать архитектура не так важна будет, когда мы научимся делать также бОльшая часть проблемы будет решена.
(Ответить) (Parent) (Thread)
[User Picture]From: akimka
2016-09-29 03:01 pm

Re: См. заглавие.

Ну мы можем полагать что принципы похожи это уж точно. Мы имеем уже какие-то начальные знания о функциях активации и пр. Дело тут не в этом, надо смотреть на картину как бы сверху.

1. Человеческий мозг это конечная машина тьюринга.
2. Мы (люди) довольно успешно решаем задачу создания все более и более универсальных машин тьюринга и предела не видно.
3. Когда-то наши возможности встретятся с конкретной реализацией. И будет это, вполне возможно, довольно скоро.
(Ответить) (Parent) (Thread)
From: inconceivable2
2016-09-29 12:35 pm
DARPA вроде предлагает гранты на explainable AI.
(Ответить) (Thread)
[User Picture]From: nikolenko
2016-09-29 12:35 pm
Ну машинный перевод-то давно делали глубокими сетями с вниманием, уже года два как были state of the art результаты или около того.

Что реально сложно и непонятно – это common sense, отвечание на вопросы, рассуждения. Вот это, видимо, следующий уровень.
(Ответить) (Thread)
[User Picture]From: de_nada
2016-09-29 12:51 pm

Хм-ммм...



Я правильно понимаю основной посыл Вашего поста, что нейронки (столблю за собою парафраз апокрифически-стругацкого: "А унутре у него НЕЙРОНКА!" :))) суть есть голимая (тактическая) эмпирика, тогда как стратегически человечеству выгоднее всё же "документированное" достижение тех же целей с полным (ну или достаточным) пониманием деталей процесса???

С уважением.

P.S. Вообще тут я наблюдаю некое смешение (не Вами!) сущностей по принципу наличия сходства ("и у самолёта, и у крокодила есть хвост!").
Иными словами, потенциальная возможность и приемлемость непрозрачного функционирования непрозрачных нейронок мотивируется/обосновывается тем, что ведь "уже существует" нынешняя непрозрачность программно-аппаратных монстров.

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

Вот как-то так. Извините за трюизмы.

P.P.S. Вдруг вспомнился роман Сергея Павлова "Лунная радуга". С вашего позволения, небольшая цитата оттуда "по теме":

То есть третья группа умов должна рассудить спор двух первых. Так и делаем. Земля не оскудела умами. По любому вопросу безопасности Ближнего Внеземелья создаем ученые советы, комиссии, подкомиссии, комитеты, агентства. Трудно даже сказать, сколько их работает под эгидой МУКБОПа. Международных и региональных. Специальных, функциональных, экспертных, координационных. Всяких. Нагромождаем друг на друга этажи умов, ярусы авторитетов. Вдобавок теперь нас прижимают к стене «сюрпризы» Дальнего Внеземелья. Как быть? Уповать на неисчерпаемость интеллектуальных ресурсов родимой планеты?

(Ответить) (Thread)
[User Picture]From: klvov
2016-09-29 06:31 pm

Re: Хм-ммм...

Плюс один. Вопрос ведь поднят фундаментальный. Его поднимали такие корифеи, как Винер и Вейценбаум. Винер писал что-то вроде (в вольном пересказе): "ОК, допустим, что мы человеческим умом способны понять все-все. Но ум функционирует с ограниченной скоростью, и, допустим, есть такие вещи, в которых наш ум, чтобы разобраться, должен потратить 100500 лет непрерывного размышления над ними". Вейценбаум же говорил, что уже лица, принимающие решения, перестали понимать, как функционируют компьютерные алгоритмы некоторых специфических программ, и что, несмотря на это, они принимают решения, основываясь на результате работы этих алгоритмов. И приводил в пример эпизоды войны во Вьетнаме, когда американские генералы принимали решения где бомбить, основываясь на результатах, которые выдал компьютер.

Что здесь общего с нейронными сетями? Ну, они тоже работают, но мы не понимаем досконально, как они работают и почему. Какой-то блоб, который непонятно как дизассемблировать...
(Ответить) (Parent) (Thread)
[User Picture]From: akimka
2016-09-29 08:41 pm

Re: Хм-ммм...

Да чего там далеко ходить мы даже пятимерную матрицу представить не можем ;) Так что это все не беда, просто не надо считать человека венцом прогресса.
(Ответить) (Parent) (Thread)
[User Picture]From: klvov
2016-10-01 08:39 am

Re: Хм-ммм...

Ну да. А ваш коммент заставил вспомнить анекдот про математика и k-мерный оркестр :)
(Ответить) (Parent) (Thread)
From: huzhepidarasa
2016-09-29 01:13 pm
У Вас ведь дети есть? Так вот это — наши новые дети, лучше старых, знакомьтесь. Вы ведь не понимаете, как у детей чего внутри устроено, хотя вроде воспитывали собственноручно, верно? И здесь то же самое.

Edited at 2016-09-29 13:14 (UTC)
(Ответить) (Thread)
From: (Anonymous)
2016-09-29 01:27 pm

Ага, и более того.

Интеллект это устройство, предназначенное работать в любой неизвестной и непредставимой ситуации, не имея никакой априорной информации о ней. Как в таком случае можно говорить о какой-либо "проницаемости", "понимании"? Не может быть понимания неизвестно чего. Возможно только понимание на микро-уровне, на уровне нейрона и синапса, но не на уровне структур, которые из них образуются в процессе обучения.
(Ответить) (Parent) (Thread)
[User Picture]From: gruimed
2016-09-29 01:33 pm

Забавно, лет 10 назад вроде считалось наоборот - что нейронным сетям не побить спициализированные модели.

(Ответить) (Thread)
From: biggreenhamster
2016-09-29 01:54 pm
Ну раскажите нам как нейронные сети пожирают ненормализованные, с абсолютно разной маржиналкой по измерениям, данные.
А мы похохочем.

Впрочем от пИсателей такого рассказа не дождешся. Ибо оне, пЕсатели просто не понимают предмета о котором пишут.
(Ответить) (Thread)
[User Picture]From: avva
2016-09-29 02:25 pm
Какое-то странное немотивированное хамство.
(Ответить) (Parent) (Thread)
[User Picture]From: de_nada
2016-09-29 03:13 pm

?




Почему "немотивированное"? Очень даже мотивированное.

Мотивом тут является желание выразить несогласие с Вами в угодной Вашему оппоненту форме.
Ну или наеборот - нежелание сдерживать свои эмоции и облекать несогласие с Вами в корректные формулировки.

С уважением.

(Ответить) (Parent) (Thread)
[User Picture]From: p2004r
2016-09-29 03:01 pm
Если есть некая более менее "системная система" которую мы хотим смоделировать, то все сводится к простой геометрии -- в некотором фазовом пространстве производном от наблюдаемых нами показателей есть некая поверхность отклика интересующая нас.

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

С точки зрения использования на практике такое "интерполяционное" решение может быть лучше на порядки, поскольку учитывает кучу поправок нелинейных. Хотя для понимания и вывода неких "законов бытия" это печально... Все знание представлено в стиле даосизма какого то.
(Ответить) (Thread)
[User Picture]From: p2004r
2016-09-29 03:02 pm
"коэффициентны полинома" читать естественно "смысла не имеют"

PS что за мода запрещать редактирование комментариев?
(Ответить) (Parent) (Thread)
[User Picture]From: avva
2016-09-29 07:25 pm
Я ничего не запрещал.
(Ответить) (Parent) (Thread)
[User Picture]From: occuserpens
2016-09-30 02:21 am
Когда на коммент есть ответ, его редактирование закрывается
(Ответить) (Parent) (Thread)
From: (Anonymous)
2016-10-01 09:08 pm

аналитика vs чис. методы

разница такая же как между аналитической и численной моделью - первая максимально сжимает информацию, делая тем самым доступным для анализа человеком, вторая наоборот - просто моделирует явления без возможности анализа человеком.

и avva, насколько я понимаю, говорит о том, что отказ от первых в угоду вторых таит опасность потери контроля над работой таких систем (никакого анализа, доказуемости корректности и проч. все заменяется "на практике хорошо работает")

п.с. кстати, недавно токо прочел про универсальную аппроксимационную теорему, и все как бы стало на свои места - нейронные сети - это просто удобный вариант аппроксимации непрерывных функций с функцией невязки, близкой к человеческой (если речь об аппроксимации функций человеческого восприятия).
(Ответить) (Parent) (Thread)
[User Picture]From: raymond_saint
2016-09-29 05:20 pm
Получается "глубокое обучение" на самом деле поверхностно?
Oh, the irony.
(Ответить) (Thread)
[User Picture]From: akimka
2016-09-29 08:42 pm
этот термин замылили. Все что означает "глубокое" в этом контексте, это значит, что между выходным и входным набором функций есть еще один набор и все.
(Ответить) (Parent) (Thread)
(Удалённый комментарий)
[User Picture]From: jambojet
2016-09-30 11:08 am

Re: Нейронные сети распознают лица

Охренеть.
Напомнило, как блоге КРОКа на хабре был рассказ о системе видеонаблюдения с распознаванием лиц: ошибок меньше, чем у вахтера сидящего на проходной.
Особенно гигантская разница для тяжелых сценариев, например 99% верное распознавание личностей азиатов (которые для неопытных европейцев на одно лицо).
(Ответить) (Parent) (Thread)
[User Picture]From: akimka
2016-09-29 09:30 pm
(Ответить) (Thread)
[User Picture]From: nevsky
2016-09-29 11:21 pm
(Ответить) (Thread)
From: (Anonymous)
2016-10-01 07:02 pm
Сети пока "слишком далеки от народа". По моему разумению, задача перевода ближе к шахматам, пусть и с расширенными правилами. Пару десятков лет назад знакомый лингвист придумал, как сделать машинный перевод средствами тех лет: специально обученный персонал вручную присваивал полтора десятка признаков каждому слову словаря, после чего результаты перевода получались весьма и весьма приличными.
Но попробуйте обучить нейронку находить схожесть между карикатурой и оригиналом, а ее легко видит даже ребенок... Задача из жизни - анализ биржевых графиков: очень трудно заставить сеть видеть то, что видит тренированный мозг (мне пока не удалось).
(Ответить) (Thread)
[User Picture]From: akor168
2016-10-07 03:15 am
Но попробуйте обучить нейронку находить схожесть между карикатурой и оригиналом

Честно? Я думаю, это либо уже сделано, либо кто-то вот-вот сделает. Поскольку задача как раз для нейронных сетей по определению.

Edited at 2016-10-07 15:47 (UTC)
(Ответить) (Parent) (Thread)