Как устроены нейросети?
Добавлено: 07 мар 2016, 16:37
Всегда хотелось понять, что из себя представляют нейрокомпьютерные системы. То есть для чего они нужны и как используются - понять легко. Есть, мол, искусственный интелект, а он нужен для роботов. Вернее, для того, чтобы решать трудноформализуемые задачи.
Что значит трудноформализуемые? Это такие задачи, для которых, крайне трудно составить алгоритм решения. Например, сложение больших чисел - задача легко формализуемая и известно множество алгоритмов для ее решения. Первоклассник, однако, такую задачку решить не может, так как еще не знаком с алгоритмом сложения в столбик и др. С другой стороны, как отличить фотографию кошки от фотографии собаки? Первоклассник легко и непринужденно проводит такое различие, а у программы возникают с этим большие сложности. Вот эти большие сложности и называют трудноформализуемой задачей.
На заре зарождения вычислительной техники в конце 1940-х и начале 1950-х годов существовало два различных подхода к разработке искусственного интеллекта.
Первый подход назывался "символьно-алгоритмической парадигмой"
1) "знания" представлялись в виде множества символов
2) манипуляции с этим множеством символов производились по формальным алгоритмическим правилам
Второй подход "коннекционистская парадигма"
1) основная идея состоит в том, чтобы реализовать некоторые возможности мозга с помощью воссоздания его архитектурных особенностей.
Уважаемые форумчане, может я проецирую на вас свои трудности, но у меня мозг начинает выключаться из работы даже при слове "коннекционистская". Может кто-то из вас обладает знаниями по этой теме и может объяснить азы нейротехнологии программирования с помощью "палки" и "веревки" ? Было бы очень здорово, если бы вы помогли познакомиться с этой, сложной для моего понимания, темой.
В общем, слово "коннекционистская" я пытаюсь запомнить и привыкнуть к нему. Это модель обработки информации в основу которой положены следующие черты живых нейросетей:
1) простой обрабатывающий элемент - нейрон
2) участие огромного числа нейронов в обработке информации
3) каждый нейрон связан с большим числом других нейронов (глобальные связи)
4) изменяющиеся по весу связи между нейронами
5) массовый параллелизм обработки информации
Для решения какой-либо задачи с помощью обычного языка программирования достаточно составить алгоритм ее решения или воспользоваться уже существующим.
А что нужно сделать, чтобы решить задачу с помощью нейротехнологии? Для решения конкретной задачи создают нейронную сеть.
Чтобы задать нейронную сеть необходимо определить:
1) модель нейрона
2) топологию связей
3) веса связей
На сегодняшний день я "сломался" на 1 пункте - модель нейрона. Перечислю то разнообразие моделей, которе ввело меня в некоторый ступор:
Персептрон
Сигмоидальный нейрон
Нейрон типа "адалайн"
Паде-нейрон
Нейрон с квадратичным сумматором
Сигма-Пи нейрон
Модель нейрона Хебба
Стохастическая модель нейрона
Нейроны типа WTA
Кубические модели нейронов
Первый вопрос, на который мне хотелось бы найти ответ - это возможно ли с помощью привычного алгоритмического, объектно-ориентированного языка программирования смоделировать простейшую нейросистему? И, возможно ли, по этой нейротехнологии, создать программу, которая, например, будет распознавать капчу?
Персептрон.
У него есть несколько входных сигналов. Сумматор, который обрабатывает входные сигналы. Ступенчатая нелинейная функция активации по результатам работы сумматора, которая обеспечивает выходной сигнал персептрона равный 1 или 0.
Даже нашел некую схему персептрона, но пока не смог до конца понять ее смысл, может вы поможете, уважаемые форумчане?
Не понимаю как работает сумматор, не понимаю и как работает функция. Вот бы на примере посмотреть как этот персептрон моделируется...
Что значит трудноформализуемые? Это такие задачи, для которых, крайне трудно составить алгоритм решения. Например, сложение больших чисел - задача легко формализуемая и известно множество алгоритмов для ее решения. Первоклассник, однако, такую задачку решить не может, так как еще не знаком с алгоритмом сложения в столбик и др. С другой стороны, как отличить фотографию кошки от фотографии собаки? Первоклассник легко и непринужденно проводит такое различие, а у программы возникают с этим большие сложности. Вот эти большие сложности и называют трудноформализуемой задачей.
На заре зарождения вычислительной техники в конце 1940-х и начале 1950-х годов существовало два различных подхода к разработке искусственного интеллекта.
Первый подход назывался "символьно-алгоритмической парадигмой"
1) "знания" представлялись в виде множества символов
2) манипуляции с этим множеством символов производились по формальным алгоритмическим правилам
Второй подход "коннекционистская парадигма"
1) основная идея состоит в том, чтобы реализовать некоторые возможности мозга с помощью воссоздания его архитектурных особенностей.
Уважаемые форумчане, может я проецирую на вас свои трудности, но у меня мозг начинает выключаться из работы даже при слове "коннекционистская". Может кто-то из вас обладает знаниями по этой теме и может объяснить азы нейротехнологии программирования с помощью "палки" и "веревки" ? Было бы очень здорово, если бы вы помогли познакомиться с этой, сложной для моего понимания, темой.
В общем, слово "коннекционистская" я пытаюсь запомнить и привыкнуть к нему. Это модель обработки информации в основу которой положены следующие черты живых нейросетей:
1) простой обрабатывающий элемент - нейрон
2) участие огромного числа нейронов в обработке информации
3) каждый нейрон связан с большим числом других нейронов (глобальные связи)
4) изменяющиеся по весу связи между нейронами
5) массовый параллелизм обработки информации
Для решения какой-либо задачи с помощью обычного языка программирования достаточно составить алгоритм ее решения или воспользоваться уже существующим.
А что нужно сделать, чтобы решить задачу с помощью нейротехнологии? Для решения конкретной задачи создают нейронную сеть.
Чтобы задать нейронную сеть необходимо определить:
1) модель нейрона
2) топологию связей
3) веса связей
На сегодняшний день я "сломался" на 1 пункте - модель нейрона. Перечислю то разнообразие моделей, которе ввело меня в некоторый ступор:
Персептрон
Сигмоидальный нейрон
Нейрон типа "адалайн"
Паде-нейрон
Нейрон с квадратичным сумматором
Сигма-Пи нейрон
Модель нейрона Хебба
Стохастическая модель нейрона
Нейроны типа WTA
Кубические модели нейронов
Первый вопрос, на который мне хотелось бы найти ответ - это возможно ли с помощью привычного алгоритмического, объектно-ориентированного языка программирования смоделировать простейшую нейросистему? И, возможно ли, по этой нейротехнологии, создать программу, которая, например, будет распознавать капчу?
Персептрон.
У него есть несколько входных сигналов. Сумматор, который обрабатывает входные сигналы. Ступенчатая нелинейная функция активации по результатам работы сумматора, которая обеспечивает выходной сигнал персептрона равный 1 или 0.
Даже нашел некую схему персептрона, но пока не смог до конца понять ее смысл, может вы поможете, уважаемые форумчане?
Не понимаю как работает сумматор, не понимаю и как работает функция. Вот бы на примере посмотреть как этот персептрон моделируется...