Как стать автором
Обновить

Комментарии 92

Ну зачем эта академичность? Господи, доказательство-то зачем?!
Заинтересуйте! Расскажите интересно и в доступной форме! Копипаста лекций не слишком с этой ролью справляется.
У нас, когда-то, даже в лекциях по этой теме было больше картинок…
Смотрите пример.
Там нет теорем и доказательств, но тем не менее работает. :)
Позволяет ли перцептрон обучать данными с «шумом» или ошибками?
да. обучение вообще не зависит от начального обучающего вектора. точнее почти не зависит.
нет. вопрос был о другом. как быть, если обучающая выборка содержит ошибки или случайным образом зашумляется?
ответ: как говорится, it depends

зависит от сети, от шума, и главным образом от той зависимости, которой вы обучаете.

it depends
какая разница, содержит ошибки(шум) обучающая выборка или нет? она по определению должна содержать ошибки, иначе алгоритм завершиться на первой итерации(тогда непонятно зачем он вообще нужен?). А вот от типа сети и от алгоритма обучения зависит. тут я с вами согласен.
вы не поняли

допустим, мы учим сетку решать линейные уравнения. входы: a, b, выходы — корень

обучающая выборка — 1000 уравнений с решениями, тестовая 10

и если все гладко, то есть шанс ее научить. а вот если в обучающей будет штук 10 ошибок, то есть неправильных решений? а если 100? а если мы будем с вероятностью 5% обучающий пример заменять на какую-нибудь ахинею, справится алгоритм? неизвестно

вот об этом и был вопрос
извиняюсь, теперь я понял.
НЛО прилетело и опубликовало эту надпись здесь
Это неверно, вообще-то, что все так просто. Вы говорите ошибки не мешают — беру, и 10000 раз учу перцептрон, что дважды два = 5. И отпускаю на волю :) Тут, как правильно заметили ниже, все зависит от того, как обучать. Вот про это я и спрашивал…
Не очень поняла, что вы имеете ввиду, но когда мы в универе изучали Интеллектуальные сети, приходилось программировать модель персептрона. Всё было гораздо проще. Мы обучали его обычным буквам и цифрам, вобщем, отдельным символам. Поначалу персептрон(мы так его называли, не через Ц) нужно было обучить, затем можно было модифицировать буквы, например, из А сделать Н или из Е Р и он их распознавал. Когда уж сильно «поиздеваться» над буквой, персептрон может либо выдать, что не в курсе что это такое, либо сравнить то, что мы ему предложили с несколькими буковками. Сама буква выглядела как массив 5х8 из… эээ… как бы это описать… квадратиков. Если он активный, то цветной, если не активный, то белый. Вот так клацая на квадратики наш препод издевался над буквами, а потом и над нами)))))))))))))
P.S. Честно говоря, предмет мне не понравился… а само сочетание слов Искусственный интеллект до сих пор весь наш матфак вводит в смех))).
А на счет применения… мне кажется, что подобную систему используют программы распознавания текста.
намного более умную. анализировать пиксельные картинки большого разрешения напрямую через НС неэффективно
НЛО прилетело и опубликовало эту надпись здесь
это не панацея. с пиксельными картинками главная проблема — позиционирование изображения, толщина линий и изменчивость формы (более характерно для рукописных или сложнооформленных текстов). для передачи НС нужно делать умную, почти экспертную систему препроцессинга для «векторизации» буквы.

впрочем, это уже не моя вотчина, нужно спрашивать узких специалистов
НЛО прилетело и опубликовало эту надпись здесь
Для символов часто достаточно просто уменьшить картинку до меньшего разрешения ;)
вы пробовали?
Да.
плиз расскажите о задаче. что распознавалось, какие шрифты, какое качество картинки, структура сети, ход обучения, доля ошибок
примитивно — опознать рукописный символ введенный мышкой на экране :). Но давно это было. Приводиться к какому то небольшому размеру и потом уже распознается.
странно. и какая обучающая выборка? какой процент распознавания?

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

В целом написать OCR задача очень сложная. Хотя бы предложите алгоритм выравнивания листа с текстом или выделение регионов с текстом…
А можно подробнее — как они практически используются?
И есть ли какие-нибудь библиотеки, позволяющие их применять?
www.ci.ru/inform16_05/p_24.htm — это примеры использования.
Библиотеки — для Statistica точно был модуль. Да и самостоятельно пишется нейронная сеть довольно просто.
Вообще-то, програмист (и тем более аспирант), должен знать, где и для чего применяются нейронные сети.
Незнание — не плохо. Плохо — нежелание знать.
НЛО прилетело и опубликовало эту надпись здесь
Справа есть колонка «Похожие публикации ↓»
> Сети бывают 2х видов: однослойные, многослойные.

Конфигураций сетей бывает бесконечное множество, в том числе и с рекурсивными связями.
странная лекция… мне кажется за пару можно больше рассказать )
традиционно в этой лекции рассказывают еще о различии между запоминанием НС значений обучающей выборки и собственно обучением. нужно владеть и применять методику обучающего и тестирующего этапов эксперимента, а то вполне можно по погоде в Гонолулу курс тугрика предсказывать. было бы желание.
Искусственного интеллекта не бывает.
Мышление на алгоритмизируется.
Нейронные сети не являются моделью поведения человеческого мозга.
Несмотря на громкие разговоры до сих пор не создано простейшей системы распознования речи.
Нет, то что предлагает Микрософт в своих продукт не является простейшей системой распознования речи.

Бла бла бла.

Добрый совет: не теряйте время на эту дребедень.
То, что нейронные сети не моделируют мозг, не является причиной их не изучать и не использовать в различных прикладных задачах.
НЛО прилетело и опубликовало эту надпись здесь
То есть их как бы случайно обсуждают в блоге «Искусственный интеллект», а на самом деле они должны были быть в блоге «Прикольные математические абстракции»?
А разве искусственный интеллект это только моделирование мозга? В википедии, например, сказано так:

Artificial intelligence (AI) is the intelligence of machines and the branch of computer science which aims to create it.

Major AI textbooks define artificial intelligence as «the study and design of intelligent agents,» where an intelligent agent is a system that perceives its environment and takes actions which maximize its chances of success. John McCarthy, who coined the term in 1956, defines it as «the science and engineering of making intelligent machines.»


Мне кажется, какую-нибудь нейронную сеть, играющую в крестики-нолики, можно рассматривать в качестве «system that perceives its environment and takes actions which maximize its chances of success».
Это словоблудие ;-) Если что-то не прошло тест Тьюринга, значит это не искусственный интеллект. А все остальное — это просто алгоритмы, направленные на достижение тех или иных строго формализованных целей.
НЛО прилетело и опубликовало эту надпись здесь
Хорошо, к завтрашнему напишите программку — на входе AVI-шник, на выходе — краткое описание содержания фильма.
Когда справитесь приходите продолжим разговаривать.
Тролли, раз у вас время есть меня минусовать, поди ИИ-то уже написан. Так это — в народ его даешь!!! Не стесняйтесь! Если от своего имени не хотите — присылайте, я от своего опубликую…
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Хотя вы тут и каламбурили/пререкались я вот подумал, а возможно ли. И пришел к выводу писателя Булгакова.

Обучающая выборка с фильмами очень большая будет для такой сети. И обучаться будет лет пять-десять. Будет содержать непонятно сколько уровней… А с учетом того что это будет почти человек, то вопрос зачем это делать если можно этого достичь просто природным способом — пойти родить ребенка.

Хотя другой вопрос ограничение сверху по возросту людей может ограничивать нас в развитии. Может по этому мы не изобрели…
Идем по следам karma?

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

И вот здесь в теме «Можно ли научить нейронную сеть болтать»

www.gamedev.ru/code/forum/? id=1314

Моя позиция с той поры никак не изменилась.
> Искусственного интеллекта не бывает.
> Мышление на алгоритмизируется.

А все-таки хочется попробовать :).

Сидишь себе, делами всякими интересными занимаешься, а искусственный интеллект знай себе код пишет, или сразу диссертацию… :)
Тоска и уныние!
Вообще-то нейронные сети используются, и их использование в некоторых областях вполне оправданно. По этому «не терять время на эту дребедень» — не очень хороший совет.

Распознование речи — вещь достаточно простая и реализована она на данный момент очень хорошо. А, вот, с синтезом речи немного сложнее. Для синтеза необходимо учитывать интонацию. А это подразумевает понимание смысла… вот тут искусственный интеллект на НС или без них бессилен.

Почему, на Ваш взгляд, мышление не алгоритмизуется?
НЛО прилетело и опубликовало эту надпись здесь
Это все Ваши эротические фантазии. Про компьютеров, создающих музыки и т.п. Не теряйте времени, я серьезно — займитесь более практическими вещами.
НЛО прилетело и опубликовало эту надпись здесь
Вы поймите: любой алгоритм, даже искуссный, даже весьма трудно формализуемый, остается алгоритмом. А не искусственным интеллектом. Комьютер безусловно можно написать музыку, подбирая ноты в соответствии с гармоническими законами (заданными в алгоритме человеком). Вот только оценить, что музыка хорошая или нет — не сможет.
Понимаете, Моцарт в свое время тоже бросал кости, чтобы выбрать один из похожих вариантов начала произведения. Он мог и компьютер использовать для этого.
И в шахматы играют компьютеры. Да, никто и не спорит, они только в Го не играют. Потому что в шахматах работает брутальный перебор всех вариантов, а в Го — нет, там надо _думать_.

Насчет самолетов — это вообще клево!

Вы себе представляете уровень ответственности прибора, который помогает уходить от столкновения с другим самолетом?

Вы серьезно думаете, что внутри него лежит нейронная сеть, которую накачали сотней вариантов поведения??????

И что когда начнет разбор после очередной аварии и в компанию-производителя софта придут следователи и спросят — «почему это он сказал вниз, хотя надо было — вверх», то программисты им ответят — «а шут его знает! так сеть решила»? Вы действительно так думаете?? Вам тада надо давно в Боинг резюме послать…
НЛО прилетело и опубликовало эту надпись здесь
А на моем факультете вчера сделали искусственного имхота! И научили его постить комменты на хабре — круто, правда?!

imnot, ну сознайтесь, что Вы всего лишь искусственный интеллект, ну ради тысяч прочих недоучек, которые тут читают тексты! Ну пусть верят, пусть…
НЛО прилетело и опубликовало эту надпись здесь
Нейронные сети состоят из нейронов, как и мозг, вот и все сходства между ними. Мозг значительно более сложная система, чем н.с.

На тему устройства мозга и принципов его работы есть книжка Джеффа Хокинса и Сандры Блейксли «Об интеллекте».
НЛО прилетело и опубликовало эту надпись здесь
имхот, вы видимо не понимаете о чем я пишу. Давайте я вам разжую в рот.
Да, может быть существует алгоритм, управляющий обучаемой сетью, позволяющий неизвестным способом ее обучить и предлагать некие «решения» по неким исходным данным.
Но когда Вы пытаетесь это использовать в Вашем мега-приборе и воткнуть в самолет, то возникают две малюсенькие проблемы:

1. никто не гарантирует, что сеть выдаст правильное решение, поскольку сама природа нейронных сетей такова. Алгоритм их работы не предполагает объяснение своего решения. Отсюда возникает вопрос — если система ошиблась, кто виноват?
Если бы использовалась обычная алгоритмическая система, то место ошибки быстро и легко находится: либо алгоритм накормили неправильными данными, либо ошибка в самом алгоритме, либо он неправильно выдал результат. А в случае с нейронной сетью программисты разводят руками и говорят — " дык, нас имхот убедил, что все работает. Извините! Но давайте еще раз попробуем, может она в следующий раз нормально сработает?..".

Поскольку в вашем интеллекте преобладает искусственный подчеркиваю первую мысль:

НЕЙРОННАЯ СЕТЬ НЕ ГАРАНТИРУЕТ ПОЛУЧЕНИЕ ВЕРНОГО РЕШЕНИЯ.
ОТСЮДА ОГРАНИЧЕННОСТЬ ЕЕ ПРИМЕНЕНИЯ.

2. не составляет большой трудности написать обычный алгоритм, разводящий самолеты безо всякой нейронной сети. Этот алгоритм будет базироваться на понятном принципе и способе и ГАРАНТИРОВАННО выдавать или не выдавать результат. С ним (после отладки) не может случится ошибка, понимаете? Вы вообще понимаете что такое алгоритм, надеюсь?
Это, в частности, означает, что подобный алгоритм можно протестировать на всевозможные сочетания исходных данных, поскольку программистам известны граничные случае зараннее.

Разжевываю вторую мысль:

ПРОЦЕСС РЕШЕНИЯ ЗАДАЧИ НЕЙРОННОЙ СЕТЬЮ НЕПРОЗРАЧЕН, ЭТО ЧЕРНЫЙ ЯЩИК.
В ОТЛИЧИЕ ОТ ТРАДИЦИОННОГО ПОДХОДА ФОРМАЛИЗАЦИИ И СОЗДАНИЯ АЛГОРИТМОВ РЕШЕНИЯ.

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

Ждем-с!

НЛО прилетело и опубликовало эту надпись здесь
Замечательная ссылка.

Вот читаем про «Сжатие данных» о замечательных возможностях и где сравнительный анализ? В чем проблема — берем 7zip и невод, ой, то есть сеть сжимаем наборы файлов и смотрим что эффеективнее работает.

Почему нет этих сравнений если все так хорошо и замечательно работает?

Имхот, я привел два аргумента (БОЛЬШИМИ БУКВАМИ) против сетей. Не можете возразить ничего по делу — признайте поражение и тихо слиняйте. Переходить на личности как-то некрасиво ;-)
В чем кайф перепечатывать свои лекции, которые вам читают в университете? Вы хоть что-нибудь от себя добавляйте, приводите какие-нибудь примеры.
Добавил пример.
Простой, но показывает как обучить и как использовать.
Нейронные сети — тема, конечно, интересная, но мне, прожжённому прагматику, почему-то никто не объяснит, для каких прикладных задач, в частности связанных с веб-разработкой, они могут быть полезными. А без этого возникает ощущение, что это всего лишь игрушка для извращённых мозгов.
Нейронная позволяет давать ответы на факты, которых нет в обучении.

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

Как вы считаете, это будет удобно пользователю? Я думаю да.

Уже теплее. Подобные соображения были, однако, это всё красиво в теории, любопытно было бы узнать, насколько это реализуемо на практике, был ли у кого опыт реализации подобного. И не проще ли будет всё же придумать «хитроумную формулу»?
Для этого существует, к примеру, Naive Bayes — один из самый известных самообучающихся алгоритмов классификации. И он прекрасно работает — в поисковиках, спам-фильтрах и контекстной рекламе, например. Он вполне может справиться с задачей Kallisto.
то, что вы предлагаете, нельзя сделать с помощью НС, потому что нет никаких обучающих примеров.

тут помогла бы экспертная система с вручную заданными правилами.
Почему нет. Отследить движение пользователя. И сказать такое движение — такой интерес.
Такое — такой.
то есть вы зададите соответствие между определенным типом действий и одним из нескольких поведений системы, сформируете набор обучающих примеров и станете учить НС?

не проще ли сразу задать правила вида ЕСЛИ -> ТО и включить необходимую гибкость в проверке условий?

поймите, НС, data mining и такое прочее должны применяться тогда, когда нет логических, формализованных, известных зависимостей между входом и выходом и надо их или выявить, или просто смоделировать.
Пример нейронных сетей на PHP. Аж мурашки по коже. Умеют же некоторые отвёрткой гвозди забивать… >_>
умеют же некоторые не посмотрев пример и убедится в его простоте писать отверткой по клавиатуре…
Признаю свою ошибку. Сори.
Можете помочь?
Я реализовал перцептрон на C++ и Qt. Но это не важно а главное что при обучение была проверка

if(sum > 1)
&nbsp annAns = 1;
else
&nbsp annAns = -1;

Где sum — произведение входного вектора на вектор весов, а annAns — выход перцептрона(+1 или -1), в if'е 1 — это пороговое значение.

а при тесте системы уже использую код:

if(sum > 1)
&nbsp annAns = -1;
else
&nbsp annAns = 1;

И получаю правильные ответы. Почему так?
Кстати, мне хотелось бы найти людей по-настоящему увлечённых нейросетями и искуственным интеллектом. Сам этим занимался долгое время, да и сейчас кое-какие идеи крутятся…
Тут есть такие? Отпишитесь, если не трудно.
Ну насчет по-настоящему увлеченных, это вряд ли, но сама идея нейросетей и искуственного интеллекта будоражит мой ум уже лет 6.

Единственно НО, что как бы не была красива теория до практики еще идти и идти.
Все таки ненавижу я лекции, которые делают в институтах(имеются ввиду с теми лекциями из институтов, с которыми я сталкивался).

Вот, к примеру, возьмем текст из топика:
Множество нейронов не соединённых между собой, но соедененные с другими нейронами носит название слоя нейрона.
Сети бывают 2х видов: однослойные, многослойные.

Я вижу здесь бессмысленное занаучивание простых вещей. Я бы написал этот участок так:
Для описания связей между нейронами можно провести аналогию с социальными сетями. Ваши друзья — это первый слой, друзья ваших друзей — второй и так далее.

Или вот еще участок:
Совокупность нейронов соединённых тем или иным способом называется искусственной нейронной сетью или просто нейронной сетью.

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

Ладно, это еще можно понять. Но ПОЧЕМУ Вы тогда не даете определение «Простой перцептрон»? Или это слово настолько банально, что его можно пропустить. А вот «совокупность нейронов» это да, дохерища сложный термин.

Идем дальше. Теорема сходимости, Доказательство — к чему это!? Ненавижу занаученный язык. Особенно это раздражает когда понимаешь о чем речь, и создается ощущение что автор пишет статью для собственного значения. (P.S. Здесь я не везде понял о чем речь в доказательствах и теореме сходимости). Ну ладно, я не против этого, и в некоторых местах это, наверно, действительно необходимо. Но зачем это надо на Хабрахабре?

Для IT-общества куда ценнее привести пример, разобрать его и показать где его можно применять. Мы, айтишники, как никто другой, ценим практику и ТОЛЬКО ей и зарабатываем себе на жизнь.

Вы попробуйте для эксперимента допустить ошибку в какой-нибудь строке, вроде (W(t+1), W*) = (W(t), W*) + d(X)*(X, W*). Вы действительно думаете что КТО-НИБУДЬ ее заметить здесь?

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

Вот за что спасибо — это за пример. Действительно с интересом его разобрал.

Вообщем я желаю Вам написать еще как минимум одну статью на эту тематику. Не обращайте внимание на критику, она у меня слегка эмоциональной получилась, просто пишите от души и то, что Вам действительно интересно в «нейронных сетях».
Для описания связей между нейронами можно провести аналогию с социальными сетями. Ваши друзья — это первый слой, друзья ваших друзей — второй и так далее.


здесь я вижу ненужную литературизацию.
НС читаются не только ИТ-сообществу, но и студентам 1-2 курса, которые понятия не имеют о том, что такое СС

ps А текст, конечно, мерзкий
Ну без проблем, как Вам будет угодно.

Можно просто написать:
Ваши друзья — это первый слой, друзья ваших друзей — второй и так далее.

И не слова упоминать про социальные сети. Хотя все таки для хабра про соц. сети надо обязательно что-нибудь упомянуть.
в таком виде инфомация есть в любом учебнике. уж если писать — то писать популярно.
По-моему отличный пример на PHP
статью можно не читать, кто не любит формулы — из кода всё и так ясно)
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in index.php on line 8

Что-то я не пойму почему?
У вас скорее всего РНР4. Надо 5.
Спасибо, дома на Леопарде все прояснилось (на работе Тигра, там PHP4 (надо обновить)). Забавная штука, на выходных поиграюсь. Пишите еще, я когда-то работал с нейрокомпьютерами и мне эта тема очень интересна.
Есть только один вопрос который мне голову вскрывает. Как вы высчитали порог? Его можно любым выставить или надо как то высчитать его?
Да, мне тоже интересно откуда взялось это магическое 100? Если, порог, как и веса задан случайно, то почему об этом ни слова?
Вопрос есть. В Вашем примере минимальный квадрат состоит из 8 единичек.
Вертикальная/горизонтальная линия состоит из стольки же.
Вопрос: как отличить такой квадрат от линии, если перцептрону плевать на структуру, он только суммой оперирует?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории