Содержание статьи
Search code, repositories, users, issues, pull requests
History
В основе функционирования искусственного интеллекта лежит машинное обучение. Оно позволяет совершенствовать производительность ИИ без перепрограммирования системы. Говоря простым языком, этот процесс похож на обучение ребенка – он учится классифицировать и распознавать объекты, определять взаимосвязь между ними, и день за днем у него это получается все лучше.
Значение градиента будет иметь векторную величину, которая даст представление о направлении и крутизне склона. Поиск значения градиента осуществляется путем вычисления производной от функции в требуемой точке. Такая точка будет иметь значение веса, распределенное случайным образом. В ней следует проводить расчет градиента и определять направленность движения спуска. Вычисления необходимо производить последовательно во всех точках, пока не будет достигнут локальный минимум, останавливающий дальнейший спуск.
Этот метод называют также Resilient propagation (сокращенно Rprop). Он был предложен как альтернатива предыдущему способу обучения, который требует слишком много времени и становится неудобным, если результаты нужно получить в короткие сроки. Для увеличения скорости операций было разработано много вспомогательных алгоритмов, в том числе и методика упругого распространения.
Этот метод также называют Backpropagation. Он является одним из основных способов обучения и содержит в своей основе алгоритм вычисления градиентного спуска. Другими словами, двигаясь вдоль градиента, происходит расчет локального максимума и минимума функции.
Существуют разные алгоритмы обучения нейронных сетей. Однако все они подчиняются двум основным принципам: с учителем и без него. Если проводить аналогию с обучением человека, то он также способен приобретать опыт или с наставником, который будет направлять и указывать верный ответ, или без него, ориентируясь лишь на собственные наблюдения. Разница между этими двумя подходами заключается в том, что для одних «уроков» учитель необходим, а для других достаточно самостоятельного усвоения материала.
Этот метод является основным при обучении по принципу epoch (один полный проход датасета через НС). Для подгонки весовых коэффициентов он использует лишь знаки производных частного случая. При этом обязательно выдерживать правило, позволяющее определить значение коррекции коэффициента веса.
Нейронная сеть и возможность ее обучения
Такой тип обучения имеет отличительную черту – уровень ошибочных ответов, который выясняют путем сравнения планируемых показателей с реальными. С помощью многократного повторения процесса происходит выявление стоимостной функции, т.е. разницы между ожидаемыми и текущими результатами.
Сам метод обучения представляет собой процесс, при котором поступающие данные распространяются между нейронами с помощью синапсов. Передача осуществляется до тех пор, пока данные не достигнут слоя «выхода», трансформировавшись в ответ. Эта операция носит название «передача вперед».
Он предполагает наличие лишь вводных данных. Алгоритмы обучения нейронных сетей без учителя корректируют весовые коэффициенты таким образом, чтобы НС могла из схожих по некоему принципу данных на «входе» выдать результат, обнаруживающий другие взаимосвязи и закономерности между этими данными. В процессе обучения происходит выделение параметров, характерных для моделей обучающего материала, и дальнейшее объединение этих моделей в группировки по схожим признакам.
Текущий проект можно доработать/расширить под свои задачи, решаемые с помощью полноснязных нейронных сетей. Для этого в соответствующих классах проекта были созданы виртуальные методы. Чтобы добавить новую задачу (новый класс задач) необходимо создать свой программный класс и наследовать все методы и поля из класса NExamples. Таким же образом можно переопределять класс обучения TrainBP, нейронной сети INeuroNet и т.д. Но здесь мы остановимся именно на переопределении класса задачи NExamples.
При таком процессе нейросети предлагают выборку обучающих примеров. Данные подают на «вход» сети, ожидая получить правильный «выход», т.е. ответ, который даст НС после обработки внутри своей структуры. Результат сравнивают с эталонным, т.е. правильным ответом. Если НС выдает неверное решение, то необходимо откорректировать весовые коэффициенты связи и запустить процесс заново, тем самым добиваясь снижения процента ошибочных ответов.
Если закрепить ключевые показатели подстройки весов, то можно не настраивать глобальные параметры – это является дополнительным плюсом использования метода. Причем существуют готовые значения таких показателей. Их применение рекомендовано, но жестких рамок по выбору значений нет.