ОСНОВЫ ПРОГРАММИРОВАНИЯ ИСКУССТВЕННЫХ НЕЙРОННЫХ СЕТЕЙ

Поделиться
HTML-код
  • Опубликовано: 9 сен 2024
  • В этом уроке мы разбираем основы построения и программирования искусственных нейронных сетей. Затронуты вопросы теоретического характера: что такое нейронная сеть в биологии, как моделируется в программировании, каковы принципы построения и обучения. Разобран пример распознавания образов символов простейшей нейронной сетью на основе перцептронов Розенблата (однослойная сеть со статичной пороговой функцией).
    Приятного просмотра! Задавайте вопросы и комментируйте!
    ❏ Подписывайтесь на канал, ставьте лайки, комментируйте, подавайте идеи и делитесь видео с друзьями!
    Следующее видео по теме искусственного интеллекта (многослойные сети):
    • МНОГОСЛОЙНЫЕ НЕЙРОННЫЕ...
    ✓ Скачать Материалы по уроку:
    cloud.mail.ru/...
    Племянница с другом создала игру!!: • Video
    ➤Я ВКонтакте: id17130734

Комментарии • 101

  • @ZaretskiyRoman
    @ZaretskiyRoman 6 лет назад +5

    На столько хорошее видео, что я даже сохранил его на жесткий диск

  • @user-dn1uj9di8o
    @user-dn1uj9di8o 7 лет назад +1

    Сразу видно что человек ЗНАЕТ то о чем говорит, и понимает и может реализовать.. Поэтому и объясняет понятно и ПРЕДМЕТНО. В отличие от других авторов где тупо идет зачитывание китайский грамот с попутным показом картинок. В итоге получая никому не нужную хрень. Обычно нет привычки ставить лайки или дизы, но тут заслуженно ставлю лайк!

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  6 лет назад

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

  • @user-hi1pd1xr7g
    @user-hi1pd1xr7g 6 лет назад +2

    Огромное спасибо! Я никак не мог найти как корректировать веса. Благодаря тебе я наконец-то понял, как это работает)

  • @dennismeissel
    @dennismeissel 7 лет назад +7

    Лучшее видео по теме, что встретил на RUclips, спасибо, очень понятно!

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад +2

      Спасибо, стараюсь наиболее понятно. Предлагайте улучшения контента - внесу

    • @user-sl2fb1xz8g
      @user-sl2fb1xz8g 7 лет назад

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

  • @alexandergugushvili7791
    @alexandergugushvili7791 5 лет назад

    Даже не надеялся увидеть это на vb! Оригинально! Хотелось бы научиться делать подобные вещи 🙂

  • @user-sq3vf9iv6t
    @user-sq3vf9iv6t 3 года назад

    да, намного понятнее чем кажется

  • @claymore12153
    @claymore12153 6 лет назад +4

    Очень интересно, просто и понятно!
    Спасибо.

  • @craftspirit
    @craftspirit 7 лет назад +9

    Спасибо за такой хороший наглядный пример!

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад +1

      Благодарю! Буду рад новым идеям и предложениям.

  • @godrussia6376
    @godrussia6376 5 лет назад

    Я скачал с вашего сайта пример открытого кода на Visual Basic, а после картинку где рисуем буквы перевел в пиксели виде больших квадратиков чтобы на них мышкой нажимать… и вот к чему я пришёл, что система «персептрон» не работает, а только создает иллюзию. Я нажал 8 квадратиков виде большого квадрата, и программа пересчитав показала, что в матрице весов нет данных этого квадрата показав «-1». Я обучил программу нажав на «1», после чего матрица весов изменилась. Я снова набиваю этот же квадрат в тех же клетках, и он показывает, что программа его узнала, выдав мне «1». Я усложнил задачу так, что нарисовал из кубиков косую линию так чтобы один кубик из этой косой линии закрасит кубик первого куба и обучил его на «-1»…, и тут возникла проблема если программа узнает только куб, то не узнает косую линию и наоборот и сколько бы я не делал одно изображение убивает другое… хотя я косой линией закрасил только один кубик большого куба…

  • @playmarket8605
    @playmarket8605 4 года назад

    На 11:00 как корректировать веса. Однозначно понятный материал.

  • @Herclia
    @Herclia 7 лет назад +2

    Спасибо за лекцию !!! Правильно ли я понял, что под каждую проблему надо строить свою нейронную сеть?!
    Т.е. верно ли высказывание, что в основе нейронных сетей лежат стандартные алгоритмы, но 'сетки', которые необходимо считать абсолютно разные и искусство заключается в том, чтобы создать нейронную сеть максимально близко описывающую проблему и подобрать( рассчитать ) веса. Спасибо.

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад

      Это только простейшая нейронная сеть. Она не не сможет определить поворот буквы, или символы которые отличаются меньше чем на половину по площади перекрывания. Для более сложных нейронных сетей и соответственно решаемых задач - да, есть определенные конфигурации, число слоев в многослойной сети, конфигурация отростков, передающих сигналы на несколько слоев, циклическая обработка сигнала, реккурентные слои - слои, где нейроны повторно принимают свой же выходной сигнал, и многое другое. В этой лекции простейшая сеть из 1 слоя из простого перцептрона Розенблата. Современные сложные алгоритмы насчитывают уже около 700 слоев нейронной сети, решают очень сложные задачи, обрабатываются на мощных компьютерах.

  • @Ev3658
    @Ev3658 5 лет назад

    Отличная фоновая музыка! Хорошее видео. Вот только всё равно куча вопросов. Ведь сигналы получается приходят аналоговым и сравниваются с аналоговым весом - по сути дела компаратор?

  • @user-nw6ck8lb4y
    @user-nw6ck8lb4y 6 лет назад +2

    Было бы неплохо продемонстрировать код на плюсах.

  • @user-sl2fb1xz8g
    @user-sl2fb1xz8g 7 лет назад +2

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

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад

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

    • @user-sl2fb1xz8g
      @user-sl2fb1xz8g 7 лет назад +1

      Большое спасибо! Скажите пожалуйста, в каких форматах лучше готовить данные для обучения однослойной сети? Это должны таблицы данных или попарные примеры: да/нет, плюс/ минус?

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад

      Этот момент не влияет - делай как тебе удобно. Можно например создать 2 построчных файла. В первом файле в строке входные данные, во втором файле - в строке под тем же номером - правильный ответ. В программе просто написать процедуры загрузки из файла с обработкой строк. А можно генерировать примеры и ответы прямо в программе. Любую логическую функцию в языках программирования можно вычислять и записывать в переменные булевского типа (true|false).

    • @user-sl2fb1xz8g
      @user-sl2fb1xz8g 7 лет назад +1

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

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад

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

  • @dmitrykudryashov2515
    @dmitrykudryashov2515 5 лет назад

    Хорошее видео, но есть много мелочей которые автор видимо считает очевидными и не объясняет. Я как абсолютный новичок несколько раз потерял звенья логической цепочки пояснений. И кое что так и осталось непонятным.
    В целом ещё один хороший урок для общего развития.

  • @dmytruek
    @dmytruek 6 лет назад +1

    Один вопрос. Здесь идет отличие двух символов (А и Б) соответсвенно +0.1 или -0.1. Но как быть если три символа?

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  6 лет назад

      Для этого можно уже построить более прогрессивную сеть с двумя и более выходами. Можете посмотреть моё видео по многослойной нейронной сети

  • @alexvarlyk9114
    @alexvarlyk9114 7 лет назад +2

    Спасибо, наконец-то нормально объясняющее видео! А то кругом общие принципы только. Один вопрос: если рисовать буквы разного размера и в разных частях квадрата, то сеть не обучится правильно? И еще один :) На каждый элемент массива один перцептрон, я правильно понимаю?

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад

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

  • @imdark7
    @imdark7 6 лет назад +1

    Спасибо за видео :)

  • @indir935
    @indir935 6 лет назад +2

    спасибо тебе большое

  • @user-rv7vb6yt7m
    @user-rv7vb6yt7m 7 лет назад +2

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

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад +4

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

    • @user-nw6ck8lb4y
      @user-nw6ck8lb4y 6 лет назад +2

      Алгоритмы Программирования,
      Здесь я с Вами не соглашусь. Программирование - это логика в первую очередь. Иначе как бы я сам стал программистом, зная лишь на половину школьный курс математики ?

  • @endo-ender
    @endo-ender 6 лет назад +1

    Хорошее видео, было бы лучше, если улучшить качество записи звука.

  • @user-hx1uh5pn2x
    @user-hx1uh5pn2x 6 лет назад +3

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

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  6 лет назад

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

  • @user-vp4vn8og8x
    @user-vp4vn8og8x 4 года назад

    Что за трек играет фоном?13:35

  • @Serebriakov9
    @Serebriakov9 7 лет назад +1

    Благодарю за видео!
    Есть две просьбы (относятся не только к этому конкретному видео,
    но и к будущим) :
    1) Возможно ли выкладывать исходники программ из видео или хотя-бы сами программы используемые для демонстраций в видео?
    2) Хотелось бы, чтобы вы хотя-бы приблизительно указывали источники, которые использовали для подготовки материала видео. Бывает, хочется что-то еще почитать на эту тему, а гугл, как правило, в поиске по конкретной теме сперва выдает кучу информационного мусора - приходится тратить много времени на отсеивание.

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад +1

      Хорошо. Я добавлю исходники и материал на скачивание в Описании в роликам

    • @Serebriakov9
      @Serebriakov9 7 лет назад +1

      Благодарю!

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад +1

      На текущие видео материал можно скачать в описании

    • @Serebriakov9
      @Serebriakov9 7 лет назад +1

      Круто! Продолжайте в том же духе!

  • @fromnsk
    @fromnsk 7 лет назад +1

    Хочу убедиться, что я правильно понял пример:
    Когда рисуешь мышкой, участвуют определённые затронутые "рецепторы" (при данном конкретном вводе), а остальные рецепторы не изменяются (коэффициент в них). Если человек указывает что это "А", то в каждый затронутый рецептор +1. Если человек указывает, что это "Б", то из каждого затронутого рецептора -1. Таким образом в каждом рецепторе "накапливается" свой коэффициент. При новом вводе суммируются "веса" затронутых рецепторов, и если сумма положительная, то система предпологает что это "А", если сумма отрицательная, то "Б".
    Я всё правильно понимаю?

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад

      Если ответ сети и эталонный (правильный символ полученный от человека) символ совпадают, то веса не меняются. Если ответы отличаются (а это значит что сеть ошиблась, тогда веса корректируются 10:30). Ответом сети будет сумма тех элементов матрицы, которые совпадают по положению с проверяемым нарисованным символом. Далее, пороговая функция определяет знак: для отрицательного значения в примере выбран символ Б, для положительного А.

    • @fromnsk
      @fromnsk 7 лет назад +1

      Спасибо! Извиняюсь, был невнимателен.
      А сколько было нейронов? 34*34 = 1156 входных? А сколько в скрытом слое?

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад +1

      Число рецепторов (входов) равно числу нейронов, и равно произведению ширины матрицы на высоту (зависит от округления рисования до более крупных пикселов). По сути все рецепторы и нейроны идентичны, и их расположение в двухмерном виде просто нагляднее. Но сама 2D-структура не несёт в себе какой-то роли. 1 рецептор связан с 1 нейроном и все они подаются на пороговую функцию для суммирования и разделения на две группы. Суммируются все нейроны, а не только те которые задействованы в рисовании символа. Но те нейроны, где на пикселах которых не было нарисовано символа (белый фон) дадут примерно равный вклад в сумму на оба символа (Это дополнение к первому комментарию про \"веса" затронутых рецепторов"\, которое я не пояснил в первом ответе)

    • @fromnsk
      @fromnsk 7 лет назад +1

      Спасибо! Ждём новых видео о нейросетях! Особенно о нейросетях для компьютерных игр. Возможно Старкрафт будет следующей целью Deep Mind. Вот в этом направлении было бы интересно развиваться.

  • @Makcimushka1
    @Makcimushka1 6 лет назад +1

    Спасибо за видео, хотелось бы уточнить детали по вашей программе, я её скачал и запустил исполняемый файл BasicPerceptron.exe и посмотрел исходник BasicPerceptron.frm.
    1. Почему при запуске программы веса вначале показываются со значением -0.5, тогда как у вас в видео 0.5. В исходнике я тоже увидел что веса инициализируются MW(X, Y) = 0.5
    2. насколько мне удалось разобраться в вашем исходнике:
    Alf - скорость обучения установлено у вас в 0.1
    белые пиксели соответствуют сигналу M2(X,Y) = 0, а чёрные M2(X,Y) = 1
    Начальное значение пороговой функции равно T = 0.5
    Но вот как то в этой ситуации, при таких значениях, я вычислил, и как-то не те значения получаются.. ни 0.7 из 0.5 вес на первом шаге изменяется, при букве А, а 0.5 для всех ячеек. 0.5 - 0.1*1*(1 - 1) = 0.5 и 0.5 - 0.1*0*(1-1) = 0.5
    Может я что то напутал...

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  6 лет назад +1

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

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  6 лет назад +1

      В самом начале там будет не "0.5 - 0.1*1*(1 - 1)=0.5", а "0.5 - 0.1*1*(-1 - 1)=0.7". Переменная F=-1 - выход нейрона активна на первом же шаге.

    • @Makcimushka1
      @Makcimushka1 6 лет назад +1

      Благодарю за ответы, когда нибудь попробую на javascript или на java реализовать.. но скорее на javacript чтобы везде можно было продемонстрировать.

  • @pavelgorbatyuk7270
    @pavelgorbatyuk7270 7 лет назад +1

    Очевидно, что у Вас талант преподавателя. Спасибо. А насколько я понимаю, в примере сеть различает А и не А, а не А и Б

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад +3

      Спасибо за вопрос. Нет в данном случае идет отличие именно между А и Б. Так как я подаю и примеры написания, А так и примеры написания Б. А и Б тут выступают в равной роли. "А" отличаем от "неА" и "Б" отличаем от "неБ", что в одной схеме отличает их друг от друга. Если например, после обучения написать другие буквы, то ответом сети будет "А" - если написанный символ больше "похож" на "А", и также будут ответы "Б", если символ "похож" на "Б". Например на "Л" будет ответ "А", а на "5" - будет ответ "Б". Что будет совершенно верно, так как сеть вообще не знала о существовании таких символов. По данной серии будут выходить и новые ролики. Пишите предложения. Буду рад!

  • @VitaliGajdabrus
    @VitaliGajdabrus 6 лет назад +1

    А выложите, пожалуйста, исходники примера...
    Спасибо.

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  6 лет назад

      Под этим видео в описании есть материалы, в том числе там есть исходники на VB6

    • @VitaliGajdabrus
      @VitaliGajdabrus 6 лет назад

      Есть исходники - спасибо... А Вы могли бы вот так красиво с примером исходников бросить рекуррентную нейронную сеть? Это будет просто чудесно.

  • @ilyaivanov9283
    @ilyaivanov9283 7 лет назад +1

    Какой язык посоветуете? C#, python, плюсы?

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад

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

    • @Excalib
      @Excalib 7 лет назад +1

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

  • @o.shcherbyna
    @o.shcherbyna 4 года назад

    Ничего с вашего майл.ру не качается, сделайте мирор на дропбоксе или гугле. За видос плюсую.

  • @528art
    @528art 6 лет назад +1

    Как это можно использовать в игрострое, есть ли смысл? Может кто-то уже это использовал в играх, есть примеры?

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  6 лет назад

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

    • @ATtiny13a-PU
      @ATtiny13a-PU 5 лет назад

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

  • @artem.vasylenko
    @artem.vasylenko 7 лет назад +1

    Здравствуйте. Спасибо за хорошее видео. Хочу Вас попросить сделать подобный видеоматериал на тему "Машинное обучение", т.к. это сейчас очень актуальная и мало кто может ее изложить это так просто, как Вы.
    Ну и хотелось бы спросить такое...
    У меня есть задача классификации строк по темам. Допустим подается Строка 1 о спорте и мне нужно отнести ее к категории Спорт; Строка 2 о политике - к категории Политика и т.д. Слова строк могут иметь скрытый тематический характер. Строки не очень длинные, где-то до 20 слов.
    Скажите пожалуйста, можно ли такое реализовать с помощью нейросети, с чего начать и куда потом двигаться? Т.е., можете предложить общий алгоритм к решению данной задачи?
    Буду ооочень благодарен за ответ! Спасибо.

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад

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

    • @artem.vasylenko
      @artem.vasylenko 7 лет назад +1

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

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад

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

    • @artem.vasylenko
      @artem.vasylenko 7 лет назад +1

      Суть понятна, спасибо. Смотрите, а если необходимо исследовать семантическую схожесть двух строк? Например:
      1. Необходим опыт веб-разработки
      2. Знание и умение работать с web-средой приветствуется
      3. Вы должны уметь программировать на Java
      4 ........
      Т.е. с первой строкой мне необходимо сравнивать последующие строки и есть строка, например, 2 относится к 1, то необходимо отметить что она схожа с 1.
      Если строка 3 схожа с 1 - отнести к ней, если нет - отнести её в отдельную категорию.
      Первое что я сделал - составил Тезаурус, т.е. построил семантическое дерево к важным термам. Но, судя по вашему комментарию, здесь тоже нейросети не подойдут? Проблема в том, что строки короткие.

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад

      Чтобы строки считались аналогичными, нужно составить пары-синонимы. "веб-разработка" = "web-среда", "необходимо" = "приветствуются". Для каждого синонима можно вести свое одинаковое число. Если в двух строчках сразу несколько чисел одинаковы (получены от пар-синонимов), то можно с большей вероятностью сделать вывод о том что строки схожи. Превратить задачу в работу с нейросетью естественно можно, но потребуется обучить очень много строк - несколько тысяч в связи с тем что слов в русском языке много и по разному пишутся. В примере, я разделял всего 2 буквы друг от друга, и при этом потребовалось несколько десятков обучающих примеров. У вас просто не найдется такое большое число строк, а на малом числе у вас будут большие ошибки. Поэтому прямой подход к программированию тут лучше. Он и проще по осуществлению и будет точнее.

  • @REKLAMA.Business
    @REKLAMA.Business 7 лет назад

    нормас ... подписка!

  • @dmitriikapustin3384
    @dmitriikapustin3384 7 лет назад +1

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

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад

      Презентация PowerPoint 2003, на хороший звук еще не накопил)

    • @Industrialvrn
      @Industrialvrn 4 года назад

      @@user-ir8bn9zw8v забей ебанавтов кому обёртка определяет! дохуя презентаций с хорошим звуком, а толку - 0. у тебя может и звук не очень дюж, зато понимаешь что рассказываешь и доходчиво, что определяет!
      ты главное суть людям доноси! а то за свистелками и перделками суть потерять легко

  • @rudinandrey
    @rudinandrey 7 лет назад +1

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

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад

      Уже готовиться видеоурок по многослойным нейронным сетям

    • @rudinandrey
      @rudinandrey 7 лет назад +1

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

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад

      Всё будет подробно показано - несколько десятков слайдов будет

    • @rudinandrey
      @rudinandrey 7 лет назад +1

      супер! жду, спасибо заранее.

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад

      Если есть предложения на чем проверять, показывать пример, то пишите. Я еще окончательно не выбрал

  • @Pashka-lojka
    @Pashka-lojka 7 лет назад +1

    Такс, а вторая часть будет или она уже есть?

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад

      Да. Видео по искусственному интеллекту еще будут

  • @melnikowg1428
    @melnikowg1428 6 лет назад +1

    ТАк работает нейроная сеть в кс го банит читеров и обычных людей (рандом)

  • @wqfweewfef4214
    @wqfweewfef4214 7 лет назад +1

    Сейчас как бы 2017 год, а не 60е.

    • @user-ir8bn9zw8v
      @user-ir8bn9zw8v  7 лет назад

      Видео называется Основы. Для тех новичков, кто даже это не знает.