AmdInDrive, если вы его уже разбирали, то ни от какого уже. Обычно при фабричной сборке винтики в спецсостав макают (типа синей краски), чтоб от вибрации не самовыкрутились.
Danilich123, во-первых, я не знаю.
Во-вторых, чтобы обучить нейросеть выполнять такую задачу, необходимо много, очень много примеров - десятки, сотни тысяч, возможно миллионы. И еще довольно большой объем для дальнейшей проверки. Все эти примеры должны быть вручную (!) описаны по общим формальным правилам (размечены), по которым можно сеть тренировать. И, что неприятно, в случае изменения законодательства или подзаконных актов может возникнуть потребность готовить новый пакет для обучения/тестирования новой сети под новые правила игры.
Вообще, последнее время всё больше примеров, когда программы с разнообразными встроенными обученными модулями (нейронными сетями и тому подобными штуками) творят что-то очень творческое, но я бы пока очень и очень поостерегся доверять им задачу составления планов расследования.
А вот, скажем, натренировать программу с нейросетью на поиск НАРУШЕНИЙ в подобных письменных планах расследования - это, на мой взгляд, вполне доступная для таких программ задача. Но остается проблема с изменением законодательной базы. Конечно, тут можно выкручиваться, обучая несколько нейросетей, например, под каждый нормативный акт, ну не знаю...
В общем, я бы, если уж встал вопрос, больше полагался на формальную экспертную систему, которую можно руками относительно быстро перенастроить под новые нормативные акты и т.п.
Нейросети тут могли бы найти применение не творческое, а чисто техническое - распознавать рукописный текст этих документов, например.
Danilich123, практический пример: если вы попытаетесь перебрать руками миллион фоток и найти среди них нужные вам (например, пейзажи), вы быстро устанете и начнете ошибаться, чем дальше, тем больше.
Если попросить программиста написать программу, которая будет решать за вас эту задачу, то у него будет два пути:
написать программу со строгой математической основой внутри, которая будет анализировать фотки по разработанным учеными правилам, и говорить, что вот это вероятно пейзаж, а это вероятно не пейзаж.
написать программу со встроенной нейронной сетью внутри, которую программист и/или ученый натренировал на сотне тысяч фоток говорить, что вот это, вероятно, пейзаж, а это вероятно не пейзаж.
В первом варианте будет довольно дорого выработать правила для анализа фоток - это много высококвалифицированного труда ученых и довольно крутых программистов;
во втором варианте будет довольно дорого подобрать сотни тысяч фоток для обучения (их ведь надо разделить на пейзажи и не пейзажи заранее, чтоб тренировка нейросети состоялась, и чтоб проверить результат тренировки), также будут затраты на труд программиста и/или ученого для подбора подходящего типа, размера и некоторых других особенностей нейронной сети, которую потом надо тренировать.
Ну, и вдогонку - нейросеть будет решать только ту задачу, на которую ее натренировали. А наработки ученых в алгоритмах распознавания изображений могут быть применены еще много-много где.
Danilich123, программу (вообще программу) надо использовать везде, где программа справляется лучше, чем человек. Например, многократно пересчитать уйму циферок по сложным правилам и не наошибаться.
Программу, в которую встроена нейронная сеть, надо использовать там, где она работает лучше, чем программа без нейронной сети.
Например, там, где мы знаем, что хотим получить в итоге, но набор правил, который мы пытаемся внести в программу, дает много ошибок или вовсе не справляется. Тогда мы берем нейросеть и обучаем ее выдавать требуемый результат. И если она начинает выдавать нам требуемый результат, мы встраиваем ее в программу вместо набора правил обычной программы. И она внутри программы заменяет нам сложные правила из предыдущего примера.
Пожалуйста, услышьте: нейронная сеть - она ЧАСТЬ ПРОГРАММЫ, просто специфическая часть, не совсем обычная. Это тоже набор команд, просто в нем в ходе "обучения" (многократных попыток подбора циферок) автоматически подобрали такие циферки, с которыми эти команды лучше всего решают нашу задачу.
В обычной программе циферки подбирает программист или математик, на основе своего знания предмета. А в нейросети - циферки "сами" подбираются, путем перебора и сравнения результатов с заданием.
- Вот, изволите видеть, эвристическая машина, - сказал старичок, -
точный электронно-механический прибор для отвечания на любые вопросы, а
именно - на научные и хозяйственные. Как она у меня работает? Не имея
достаточно средств и будучи отфутболиваем различными бюрократами, она у
меня не полностью автоматизирована. Вопросы задаются устным образом, и я
их печатаю и ввожу ей внутрь, довожу, так сказать, до ейного сведения.
Отвечание ейное, опять же через неполную автоматизацию, печатаю снова я. В
некотором роде посредник, хе-хе! Так, ежели угодно, прошу...
...
Я осмотрел агрегат и сказал:
- Ну хорошо. Имеет место пишущая машинка "Ремингтон" выпуска тысяча
девятьсот шестого года в сравнительно хорошем состоянии. Шрифт
дореволюционный тоже в хорошем состоянии. - Я поймал умоляющий взгляд
старикашки, вздохнул и щелкнул тумблером. - Короче говоря, ничего нового
данная печатающая конструкция, к сожалению, не содержит. Содержит только
очень старое...
- Внутре! - прошелестел старичок. - Внутре смотрите, где у нее
анализатор и думатель...
Сейчас я ради тренировки сделал вариант игры 2048, но просто в консоли. Сейчас оно такое... прототип...
И подумал - надо бы ему приделать GUI. А с гуями я не очень... я раньше pygame вообще не понимал толком и просто тупо приляпывал одно к другому, как у других, лишь бы работало.
Стал читать, кто что как реализует. Попал случайно на Алекса Мартелли, он в 2009 году кому-то этот "костыль" посоветовал.
Ну и просто сделал некий "класс-болванку" в файле gui, который просто открывает окошко pygame и закрывает его по клику "на крестик". Всё запихал в один класс (ну я пока не знаю, как правильно). Просто для разнообразных экспериментов, я вообще с классами не очень и с гуями не очень...
Алан Гибизов
@phaggi Автор вопроса, куратор тега Python
MinTnt, не, я так понимаю, что в данном случае интерфейс для вызовов - это прокладка к API pygame, который можно дергать за отдельные вызовы и получать изменение поведения самого pygame.
И, типа, pygame должен быть сам в себе, он уже сам есть класс и не надо его пихать в свой класс, надо к нему правильно обращаться через специальный интерфейс вызовов.
Возможно, надо просто сделать вот такой словарик вне всяких классов, и он и будет одной стороной смотреть в сторону моего класса, а другой стороной в сторону pygame. Ну, это моя фантазия, и не уверен, что это хорошо...
Алан Гибизов
@phaggi Автор вопроса, куратор тега Python
MinTnt, честно сказать, ответ еще не нашелся в полной мере.
Я понял, что внутри этого класса не должно быть "интерфейса для вызова", коим является то, что я пытаюсь туда запихать.
Теперь у меня встали два новых вопроса:
что такое в принципе "интерфейс для вызова", если "на пальцах"?
Алан Гибизов
@phaggi Автор вопроса, куратор тега Python
MinTnt, если это disp будет внутри класса (внутри любого метода или конструктора init), то при инициализации self словарь тоже инициализируется, и упс.
А если disp вне класса или объявляется до инициализации, то в словаре self не должно быть.