ailev.ru

Обсуждение

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

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

Имя не сохранено · 30 декабря 2015

Комментарий

>Происходящее сейчас в этой области deep learning и смежных с ней меня завораживает. Меня завораживает вопрос будет ли на выходе атомная бомба?

Имя не сохранено · 30 декабря 2015

Комментарий

Ну компактификация в моем случае будет (если будет) побочным эффектом чисто методологических разборок. А так у вас там в авторах Coecke, я же еще в старом своем журнале ссылки на него давал по естественному языку, 5 лет назад (http://algebraic-brain.livejournal.com/110064.html). А он, как я уже говорил, причастен к правильной философии. Значит связь какая-то есть, только как бы выразить ее более явно.

Анатолий Левенчук · 30 декабря 2015

Комментарий

С грамматикой в deep learning разбираются, вводя структуры разбирательства с последовательностями (временем), и там тоже разные прорывы -- типа свеженького http://arxiv.org/abs/1512.08301 Компактификация знаний о мире как-то в этом машинном обучении происходит, например удаётся даже добиться "перевода" с видео ударов барабанной палочкой на аудио издаваемого звука (так, что на слух можно различить материал -- как-то даже физика выучивается!): http://arxiv.org/abs/1512.08512 Так что "выразить связь более явно" помогут как раз вот эти исследования, тут учатся говорить о выражении компактного знания в самых разнообразных ситуациях.

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

Имя не сохранено · 30 декабря 2015

Комментарий

Ох уж этот дилетантизм... Хокинс в OnIntelligence ещё в 2004м году SDR хвалил. А воз и ныне там. Не проблема построить линейное пространство -- мат. аппарат давно изучен, в поисковых движках косинусное расстояние применялось тоже ещё 10 лет назад. Нужно ли именно линейное? Хрен его знает, но мы другое строить не умеем. Как пьяные, ищем ключи под фонарём, потому что в других местах их нет. Иногда даже находим что-то похожее на ключи. Сложные задачи с таким подходом решаются на уровне "система учится: иногда у неё 2+2 равно 6, иногда 179, но мы всё равно рады, а 1+1 у нас всегда получается 2". "А до этого у неё 2+2 было равно -3859.5 и "валенок", и поэтому текущий прогресс вызывает у нас огромный энтузиазм!" Конечно же, большая модель будет работать чуть лучше маленькой -- у неё лучше с запоминанием и выделением более сложных около-линейных закономерностей. Но с большим количеством нелинейностей векторные пространства и нейроны справляются всё равно из рук вон плохо, и практике неважно -- по причине недостаточной мощности или по причине неправильного метода. В NLP эта проблема заметна особенно сильно. Модели Word vectors DR и Character DR помогли сгладить нелинейность пространства слов, модель LSTM как современная замена HMM помогла немного сгладить нелинейность предложений. Но мощность моделей всё ещё недостаточна для хороших результатов, поэтому радуются детским шагам и редким проблескам чего-то похожего на интеллект. И эта ситуация не изменится методом грубой силы в ближайшие 10 лет, одна надежда на появление более совершенных методов борьбы с нелинейностями. Со звуком -- могут дойти до человеческого уровня, там мощность задачи маленькая. С изображениями тоже всё хорошо -- там линейность очень большая, вся компьютерная графика на линейных преобразованиях построены, просто модель объёмная -- но этот вопрос легко решается увеличением мощности текущей системы на 1-2 порядка. А вот у текста -- нелинейностей намного больше, в текущих моделях даже тысячная часть имеющихся нелинейностей не уместится. Ну а backpropagation, как вы помните, основан на производных и гладкости ландшафта. Так что удивлять может лишь то, насколько далеко они зашли с помощью линейных методов и подобных маломощных моделей. Кстати, если мне не лень будет, сделаю сравнение точности классической табличной морфологии (когда для каждого слова нормальная форма хранится в массиве) и нейросетевой модели морфологии. Cho упоминает как раз о том, что даже морфология слов имеет некоторые нелинейности (на примере quit, quite, quiet). Вот и посмотрим, сколько нелинейностей нейросеть сможет правильно усвоить -- я ожидаю точность порядка 97-99% на всём корпусе, т.е. на 1-3% хуже классической модели, используемой много веков. Такой вот отрицательный прогресс... >Отдельно замечание Осману: я хотел написать Cho письмо, не занимается ли уже кто переводом между языками программирования (напомню, что по-английски там слово используется одно и то же -- translation). При этом ведь тоже должно появиться "общее language-agnostic пространство значений" и все рассуждения о побуквенности, больших контекстах и даже modality-agnostic ;-) А вот это уже полный дилетантизм. Все идеи давно придуманы, ещё Платон, как вы помните, про общее пространство идей писал. А вот реализация подкачала. Для обучения нужна огромная база параллельных текстов. У вас есть такая для компьютерных программ? И даже если будет, вы наткнётесь на огромную нелинейность пространства, и качество вашей модели будет непригодным для практического использования, но выше нуля и можно будет и дальше оптимистично радоваться и вдохновляться "экспоненциальным прогрессом науки". Эта экспонента на самом деле с отрицательным коэффициентом при показателе степени по каждой задаче. А изобретение методов, изменяющих коэффициент у экспоненты -- революционный процесс, а не эволюционный. Так и живём.

Имя не сохранено · 30 декабря 2015

Комментарий

А вас не сбить с панталыку. Но это и хорошо. Я к тому, что мой текст совсем не о компактификации знания.

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

Имя не сохранено · 30 декабря 2015

Комментарий

>>Для обучения нужна огромная база параллельных текстов. У вас есть такая для компьютерных программ? haxe и вперед. На haxe несколько тысяч проектов есть, маловато конечно. Он компилирует в кучу языков с сохранением имен переменных. Есть языки с большим количеством живых проектов, но с меньшим количеством целевых языков (2-3). А про нелинейность я думал, да, но ничего путного пока не придумал. Но это не значит что никто не придумает.

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

Анатолий Левенчук · 30 декабря 2015

Комментарий

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

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

Анатолий Левенчук · 30 декабря 2015

Комментарий

Эти все проблемы понимаются, и они потихоньку решаются. Наличие параллельных корпусов текстов: используются парсеры и переводчики (компиляторы) уже имеющиеся, при этом даже генерализация происходит, ошибка уменьшается -- http://arxiv.org/abs/1412.7449. Для языков программирования вполне подойдёт любой компилятор и корпус текстов на исходном для него языке: второй язык мы получим компилированием в него. Для красоты можно компилировать в разные машинные языки, для многих компиляторов поддержка разных целевых типов CPU имеется. Люди-то не стоят на месте, они думают, работают. Кстати, работа с машинными языками и обучением началась для генерализации в распознавании вирусов. Хотя эта работа в самом зачатке и не совсем то, что мне интересно было бы в части онтологии language-agnostic computer science space. И текущие ходы приведут, конечно же, к какому-то Wintel-ARMdroid space, но тем не менее. Насчёт противопоставления эволюции против революции -- это ведь тоже дилетантизм ;) Погуглите про доказательства evolution by jerks (эволюции через революции) вместо evolution by creeps (постепенным улучшениям). Эвлюция только через революции и происходят в реальной жизни и эмуляциях, а противопоставление эволюций и революций было приемлемым только до середины 70-х годов прошлого века. Опять же, есть аргумент "про мозги": если уж мозги человечьи как-то смогли породить современное разнообразное формальное знание и овладеть языками, и основаны эти мозги на нейронной сетке, то и сухие нейронные сетки смогут справиться -- не сразу, конечно, но и не через десятки тысяч лет, как это происходило путём работы мокрых человечьих нейронных сеток после их генетического-физиологического прихода в современное состояние и начала культурной деятельности человечества.

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

Имя не сохранено · 30 декабря 2015

Комментарий

Cross-compiler -- это набор правил. Этот набор правил мы сможем нейросетью повторить с некоторой потерей точности, но проще его и дальше поддерживать в виде правил. Прогресс-то где тогда? Это же регресс какой-то... >А про нелинейность я думал, да, но ничего путного пока не придумал. Но это не значит что никто не придумает. Мне кажется, всё уже придумано. Классические методы типа косвенной адресации и массивов. Теперь задача только в автоматическом совмещении классического подхода и machine learning. Человек ведь два числа складывает тоже не за один такт, вот и компьютер можно обучить процессной деятельности. Кстати, "stack of LSTM" можно рассматривать как первое приближение к автоматическим Turing Machines.

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

Имя не сохранено · 30 декабря 2015

Комментарий

>Эти все проблемы понимаются, и они потихоньку решаются. Не решаются они -- классификация тут бинарная, а не "50% решённой проблемы лучше 40%". Для большинства задач нужно количество ошибок на порядок меньше текущего количества ошибок, а иногда и на несколько порядков. Так что пытаются решить, но ничего ещё не решилось, кроме проблемы "computer aided classification" -- когда компьютер делает отсев явно неподходящих вариантов, а человек уже доделывает остальное. >Наличие параллельных корпусов текстов: используются парсеры и переводчики (компиляторы) уже имеющиеся, при этом даже генерализация происходит, ошибка уменьшается -- http://arxiv.org/abs/1412.7449. Понимаете, "ошибка уменьшается" -- это не аргумент. Может, она уменьшается до ненулевой константы, и нужно будет всё выкинуть и начать заново. У методов, основанных на правилах, тоже "ошибка уменьшается" уже много десятилетий, но без боли на результат компьютерного перевода всё ещё не посмотришь. >language-agnostic computer science space Есть SDK и API, которые по сути language-agnostic. >Для языков программирования вполне подойдёт любой компилятор и корпус текстов на исходном для него языке: второй язык мы получим компилированием в него. Для красоты можно компилировать в разные машинные языки, для многих компиляторов поддержка разных целевых типов CPU имеется. Люди-то не стоят на месте, они думают, работают. Кстати, работа с машинными языками и обучением началась для генерализации в распознавании вирусов. Хотя эта работа в самом зачатке и не совсем то, что мне интересно было бы в части онтологии language-agnostic computer science space. И текущие ходы приведут, конечно же, к какому-то Wintel-ARMdroid space, но тем не менее. А вы использование модели мира в языке вы совсем игнорируете? Скажем, GUI-код из одного фреймворка в другой вы никогда нормально не переведёте, потому что там есть state, и управление этим state делается по-разному и находится в управлении фреймворка. То же самое и с Runtime model: в одних языках типы статические, в других динамические. Вообще, преобразование из одной VM (Virtual Machine) в другую VM -- это в принципе нерешаемая NP-экспонентная задача, можно лишь заниматься её частными случаями и придумывать частные приближённые решения, скажем, просто закодировать саму VM в другой VM как подпрограмму. >Насчёт противопоставления эволюции против революции -- это ведь тоже дилетантизм ;) Погуглите про доказательства evolution by jerks (эволюции через революции) вместо evolution by creeps (постепенным улучшениям). Эвлюция только через революции и происходят в реальной жизни и эмуляциях, а противопоставление эволюций и революций было приемлемым только до середины 70-х годов прошлого века. А я не их противопоставляю -- а сомневаюсь в высказанной вами линейности прогресса. Если вы не сомневаетесь в революционности процесса -- тогда должны понимать, что в любой момент та часть прогресса, которая не основана на возрастании мощности компьютеров, может "застрять". >Опять же, есть аргумент "про мозги": если уж мозги человечьи как-то смогли породить современное разнообразное формальное знание и овладеть языками, и основаны эти мозги на нейронной сетке, то и сухие нейронные сетки смогут справиться -- не сразу, конечно, но и не через десятки тысяч лет, как это происходило путём работы мокрых человечьих нейронных сеток после их генетического-физиологического прихода в современное состояние и начала культурной деятельности человечества Обезьяны и коты почему-то не смогли, обладая мозгом в 10 раз меньше человеческого. А компьютерный мозг в миллион раз слабее человеческого. Стоит ли от него ожидать того, что мы ожидаем от человека?

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

Имя не сохранено · 30 декабря 2015

Комментарий

Если мы компилируем из языка А в язык Б а потом обучаем сетку то прогресса конечно нет - мы обучаем набору правил. В случае haxe мы компилируем из языка А в языки Б и В, и при обучении скармливаем тексты на Б и В как соответствующие друг другу. Можно конечно возразить что и тут мол "нет прогресса", но тут и нет уже и явно заданных правил.

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

Имя не сохранено · 30 декабря 2015

Комментарий

Да я тоже работу работаю и думы думаю, не сижу на месте. Просто крайне обидно, когда говорят, что "задачи решаются", а они на самом деле они вовсе не решаются. Вводите только себя и других людей в заблуждение. >Вы поглядите на ссылочку-то: http://arxiv.org/abs/1512.08301 Там улучшение небольшое, с нелинейностями проблем столько же, просто дальние связи более эффективно используются. Мысль интересная, почитаю повнимательнее.

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

Имя не сохранено · 30 декабря 2015

Комментарий

А какая разница, явно или неявно заданы правила? Прогресс-то должен быть или в увеличении качества решаемой задачи, или в лёгкости последующего увеличения этого качества. Если есть правила A->Б и А->B, то можно и правила Б->В построить. И есть ещё такой момент, что действовать они будут на том подмножестве языков Б и В, которое есть в А.

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

Анатолий Левенчук · 30 декабря 2015

Комментарий

Так компьютерные мощности, конечно, развиваются. Плюс ещё квантовый компьютинг может подоспеть вдобавок к стандартным кремниевым (или даже галлий-арсенидным, не суть) решениям. На это и расчёт. Опять же, нейроэволюция это не deep learning, но там может быть хорошая синергия. Ещё явно не архитектурный вечер в интеллект-стеке, ни на нижних его уровнях, ни на средних, ни (тем более) на высших. У меня нет заявлений насчёт линейности прогресса. У меня есть заявление, что люди работают, и в области машинного обучения прямо вот в эти годы в связи с приходом большого количества туда людей (вот вас, например), начало что-то происходить. Может, вы и сделаете какой-то прорыв -- и он очень и очень нелинейно (метафорически или буквально, это опять же можно обсуждать) сложится с каким-то другим прорывом. Я тут делаю, что могу: в моём блоге и физик, и математик, и программист, и лингвист встречаются и смотрят на state-of-the-art работы по distributed representations соседних комьюнити (даже если эти работы по-разному называются и имеют разные цели, но как минимум, похожую математику). Может, у них и не было бы шанса встретиться в жизни с этими работами, а так вот шанс появляется -- и они что-то интересное после этой встречи сделают. Так что и я в этой эволюции участвую, уж как могу ;)

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

Имя не сохранено · 30 декабря 2015

Комментарий

Легкость увеличения будет даже в случае обучения правилам, поскольку в отличие от программы сетку можно дообучить еще чему-то. Тут вопрос какое дообучение и как его замешать в обучающую выборку. Но вообще зачем я влез в эту тему? У меня текст был совсем о другом. Я не занимаюсь обучением сеток и никогда об этом не писал. Я вообще мимо проходил.

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

Анатолий Левенчук · 30 декабря 2015

Комментарий

representation learning -- это совсем необязательно deep learning (т.е. совершенно необязательно там есть сетки, и необязательно глубокие). А мимо пройти не удастся, потому как representation (особенно distributed representation, а не традиционными local/symbolic) мало кто занимается сегодня за пределами тусовки машинного обучения. Ну, ещё квантовые физики.

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