ailev.ru

Обсуждение

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

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

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

Комментарий

Там большая проблема в том, что при написании отдельно взятого паттерна приходится учитывать все прочие паттерны системы, возможно пересекающиеся с ним по множеству значений. Что тяжело. Плюс, в случае плохого дизайна, начинаются танцы с бубном вокруг specificity: http://justy-tylor.livejournal.com/241882.html Однако, если разбить систему на непересекающиеся микротеории и не пытаться всё пихать в логическую парадигму, то вполне можно получить её человекочитаемое и человекоосознаваемое представление. Вот только тогда "магия пропадает". Придётся программировать, а не просто добавлять правила с надеждой на авось. Для "магии" решения вроде нейросеток действительно больше подходят.

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

Комментарий

Откуда опять это наивное противопоставление нейросети и семантической сети? В нейросети эта же самая семантическая сеть и зашита, и наоборот, по нейросети можно сделать семантическую сеть. Так что по возможностям эти системы эквивалентные, и те же трудности поддержки присутствуют у обеих систем. Скорость отладки примерно та же -- можно исправить одну ошибку за пару часов руками в среднем. Избыточность на текущей день у нейросети выше, но это решается переносом знаний во вторую сеть по принципу "учитель-ученик" (также https://www.google.com/search?q=knowledge+distillation ). Так вот, если и в той и в другой сети 10^7 параметров, исправляя одну ошибку за 2 часа, посчитайте, за сколько лет вы настроите всю сеть. Можно добавить пример и переучить на его основе нейросеть, но тогда какие-то другие примеры перестанут проходить. Аналогично, в семантической сети можно изменить какие-нибудь данные -- и получить ту же проблему с "нос вытащили - хвост увяз". Нету никаких больших "трудностей отладки и сопровождения" ни там, ни там. Вот отладка для нейросети, если кто не в курсе -- это просто построение изображения на промежуточных слоях. Так что нейронная сеть -- это, по сути, специальный способ обучения семантической сети, основанный на примерах и обратном распространении ошибки. А знания внутри одни и те же всё равно, хоть и записаны в немного отличающихся представлениях. И, кстати, обратное распространение ошибок можно применить и для исправления ошибок в семантической сети. И я не понимаю, почему это мало кто понимает вообще. А также не понимают то, что нейросеть не решает ни одну задачу сама по себе, поэтому в конечном продукте очень часто есть модули разного типа. И классические алгоритмические модули, и нейросети, и базы данных (которые весьма близки к семантическим сетям, вообще-то). Более того, у нас даже мозг совмещает принципы семантической сети и нейросети. В гиппокампе нашем новые нейроны зачем постоянно появляются? Почему бы в старых нейронах всё не запоминать? Нет же, 99% информации, полученной за день, во время сна почему-то стирается, и остаётся только в гиппокампе (а также в некоторых других мелких извилинах -- одна для аудиальной памяти, одна для кинестетической). Вот так и получается, что по сути гиппокамп хранит гиперссылки на наше воспоминания в моменты нашего прошлого. Что это, как не семантическая сеть?

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

Комментарий

Это было бы просто счастье, если вся работа со знанием оказалась бы одинаково устроенной в любом представлении этого знания. Но увы, это не так. Ваш образ мыслей близок к образу мыслей Pedro Domingos с его The Master Algorithm. Только Педро считает, что этот Master Algorithm ещё придумать нужно, а вы считаете, что всё открытое это уже он и есть -- "знания внутри одни и те же всё равно, хоть и записаны в немного отличающихся представлениях".

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

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

Комментарий

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

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

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

Комментарий

Не, проблема не в мифическом Master Algorithm, проблема в методиках накопления знаний. Собственно, это одно и то же разными словами, между ними можно поставить знак равенства, только алгоритм не един, их много -- для разных представлений знаний есть разные алгоритмы, очищающие данные. А накапливать нужно очищенные данные или хотя бы примеры для обучения нейросетей, чтобы потом с помощью нейросетей получать очищенные данные. Посмотрите например на http://research.microsoft.com/en-us/projects/probase/ и http://research.microsoft.com/en-us/projects/probase/browser.aspx Байесовым методом очищенная семантическая сеть, средняя точность заявляется 97%. Это можно сравнить с word embeddings, которые можно получить с помощью нейросети.

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

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

Комментарий

"Это было бы просто счастье, если вся работа со знанием оказалась бы одинаково устроенной в любом представлении этого знания. Но увы, это не так." А я и не говорил, что работа со знанием, записанным в разных форматах, разная. Если MySQL хранит те же данные, что и текстовый файл, то разве работа с ними будет одинаковой? Но если данных много, и задачу система решает успешно, то она это делает на основании одних и тех же закономерностей, наблюдаемых в данных. Поэтому можно говорить о том, что данные внутри можно трансформировать из одного формата в другой. Впрочем, мы с вами об этом уже пару раз говорили.

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

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

Комментарий

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

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

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

Комментарий

Ну, наивное представление, конечно, но для науч-попа сойдёт. "Серебряной пули" нет и в этом смысле тоже. Чётные числа от нечётных отличать лучше поручить математику, а не любителю аналогий.

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

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

Комментарий

Любители аналогий это тоже математики. Так, support vector machines -- это как раз аналогии по Педро Домингосу. Два близко расположенных в многомерном пространстве объекта в чём-то аналогичны. Так что метод ближайших соседей -- это тоже by analogy. Хотя да, там весьма разношёрстная компания в части методов.

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

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

Комментарий

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

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

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

Комментарий

Почему тригонометрия безопаснее вариационного исчисления? А точно безопаснее? Может квадратнее или теплее?

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

Комментарий

Программирование там весьма простое. Вот языки для него пока хреновые. А непересекаемость, фактически, входит в требования совместимости. В смысле отсутствия несовместимых между собой правил внутри множества применяемых микротеорий относительно специфики вывода (выводится единственный мир или разные possible worlds).

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

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

Комментарий

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

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

Комментарий

У нейросетевиков есть алгоритм backpropagation, который даёт им фору для построения приближённых моделей на больших данных. Это бонус, наверное, начиная с задачи о расстановке переносов, описанной у Кнута в 70х (уже достаточно большой задаче, чтобы быть легко решаемой ручным составлением таблицы). А у "семантикосетевиков" намного выше точность представления знаний и выше скорость обработки -- как цифровой формат против аналогового. Но требует большей ловкости, различных онтологий и алгоритмов. В общем, я как инженер больше верю в то, что ИИ будет основан на классических алгоритмических технологиях, но его модулями кроме классических программ будут в том числе нейросети и machine learning алгоритмы -- так надёжность получившейся конструкции существенно выше. Это кстати возвращаясь к теме безопасности и устойчивости к сбоям. Человек -- отличный механизм решения непредсказуемых проблем, но для надёжного кропотливого решения предсказуемых задач человек ужасен. Как говорится, пилот -- наименее надёжная часть самолёта.

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

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

Комментарий

В части получения выводов — экспертные системы понятно как приходят к понятному выводу, который если ошибочен — понятно как исправлять. Сложно, но пошагово понять можно. Если к выводу приходит нейронка — фиг поймёшь всё это. Что касается механических систем с обратной связью, систем распознавания образов в видео, аудио и прочих сенсорных потоках и т.п. систем, не принимающих решения не делающих выводы — их, вроде бы, никто не боится. Пусть себе работают.

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

Комментарий

Кошмар, какая ужасная натяжка. Но в любом случае, представьте, что будет делать алгоритм SVM или k-means в задаче отличения чётного и нечётного числа.. хотя бы от 0 до 1000000. Вход: x, выход: x%2.

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

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

Комментарий

Вот Педро и расстраивается, что все алгоритмы умеют разное -- и представления для всех алгоритмов разные. И объединяя алгоритмы, плохо с объединением представлений.

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

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

Комментарий

Ага. Счастье не в алгоритме, а в онтологии алгоритмов и умении составлять из них планы вычислений. И кстати, на всякий случай, ответ, если кто из читателей этой ветки не знает что будет. Будет примерно так: "137 -- чётное, потому что ближайшее к нему, про которое знаю, 124 -- чётное". Кстати, с нейросетями та же проблема. А по поводу объединения представлений -- базы данных же справляются, и языки программирования справляются. Понятие типы данных, все дела. Или я не понимаю, что за представления нужно объединять (и почему). Есть одно предположение -- подправьте, если не прав -- что кто-то наивно надеется, что "синергия" даст больше, чем компоненты по отдельности. Типа, автомобиль с ракетным, дизельным, бензиновым и электрическим движком будет уметь больше, чем с одним из них. Не, скорее это просто большая авантюра. Можно взять несколько ортогональных компонент, если надо, но всё подряд в кучу смешивать -- это переусложние. А чем в инженерии платят за переусложение? Снижением характеристик: ухудшением надёжности, срока службы, ремонтопригодности, настраиваемости.

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