Здравствуйте, Khimik, Вы писали:
K>Я прочитал одну книгу про нейросети, и по-прежнему осознаю, что не понимаю, что это такое. Т.е. я вижу, что нейросети “думают” принципиально другим образом, чем программы, которые мы пишем, но ничего конкретнее сформулировать не могу.
K>Я хотел бы написать на Delphi простую нейросеть, например распознающую буквы. Прошу подсказать хорошие книги и обучающие видеокурсы.
K>То, что я пока нагуглил, мне как-то не очень нравится. Вот, например, эта статья:
K>https://zennolab.com/discussion/threads/nejronnye-seti-raspoznovanie-cifr-prostym-jazykom.35859/
K>Здесь задача уж очень примитивная – распознать один из 10 растров в 3*5 пикселей, которые обозначают цифру. Это проще реализовать банальным перебором и сравнением, я вообще не вижу тут алгоритмической задачи. Мне хочется написать нейросеть, которая сможет распознавать искажённые, наклонённые, сплющенные и т.д. буквы.
K>В интернете приводятся примеры в основном на Питоне, я надеюсь Delphi тоже вполне подходит для такой задачи. Если Питон – более высокоуровневый язык и это достаточно важно, может мне сначала нужно выучить Питон.
K>Интерес у меня скорее теоретически-философский – понять, какой принцип лежит в основе работы нейросетей, как они “думают”. Ну и какие у них принципиальные преимущества перед обычным кодом с алгоритмами.
K>Кроме НС для распознавания букв, интересно было бы написать НС, например, для игры в преферанс, только боюсь это очень сложная задача.
K>Ещё добавлю, что когда я изучал Delphi, я не мог въехать в принципы ООП по книгам; до меня всё дошло только тогда, когда я сходил на курсы к живому человеку. Поэтому для освоения НС мне, возможно, необходимы хорошие видео. Мне кажется, лучшим вариантом было бы видео, где знающий человек долго объясняет профанам суть концепции, и до тех понемногу начинает доходить.
почитайте вот это
с тех времён нейросети не продвинулись, если не сможете скачать, то напишитие в личку.
что касается философии, то нейросети имеют очень ограниченную область применения, в первую очередь потому, что программисты возлагают большие надежды на их способность к самообучению, но при этом упускают из виду то, что эффективный характер обучения объекта подразумевает взаимодействие с этим объектом, а при взаимодействии объект ведёт себя совершенно иначе, чем при просто наблюдении. и вот тут-то нейросети наталкиваются на философский закон: нельзя познать систему до конца, если ты сам являешься её частью.
Мой совет: почитайте математику лежащую в основе нейросетей — она интересная, но прежде чем программировать приложения задумайтесь на сколько ваша нейросеть будет чувствительна к обучающему набору? может оператор или эвристические алгоритмы/шаблоны справятся лучше? К примеру: Abbyy по состоянию на 2006 год нейросети точно не использовала, да и сейчас скорее всего не использует.