11

Я делаю проект Neural Network в качестве моего последнего студенческого проекта. Идея проекта: очень простой робот с двумя двигателями и двумя датчиками ir и bump будет пересекать среду с использованием нейронной сети, которая находится в компьютере. Основным требованием является наблюдение, возможно, с помощью подходящего графического интерфейса процесса обучения и процесса эволюции нейронной сети. (Основная цель - наблюдать нейронную сеть, а ее изменения не приводят в движение робота). Робот будет взаимодействовать с компьютером, используя последовательную связь на ранних этапах проекта, а затем будет использовать WLAN ..Мнение о подходящем языке программирования для мозга нейронной сети робота?

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

Я до сих пор рассматривал JAVA и C# .. Я также прошу ваше мнение ... Пожалуйста, дайте свои отзывы о проекте и аспектах моих соображений при выборе языка. другие слова .. что еще я должен рассмотреть до принятия решения)

Спасибо.

ответ

15

(Основная цель состоит в том, чтобы наблюдать нейронной сети и ее изменения не в управлять роботом).

Нейронная сеть является одним из видов учащихся, который имеет форму, которая не легко (если вообще) понятна людям. Визуализация сети и ее веса не будут действительно интересными или полезными. Вы будете лучше сохранять состояние нейронной сети в разных точках во время тренировки - начать, посередине и, скажем, - и затем продемонстрировать поведение робота со всеми тремя. Надеемся, что по мере прогрессирования обучения производительность улучшится (по любой объективной метрике, которую вы выбрали). Возможно, вам захочется показать некоторые графики, показывающие рейтинг «эффективности» робота после N интервалов - в конечном итоге вы должны достичь асимптоты или даже начать отслеживать прохождение результатов, поскольку обучение становится ответственностью. (По крайней мере, это то, что я хотел бы видеть, если я пересматриваю свой проект в академической среде.)

Моего вопрос, который является лучшим языка, который может быть использован для реализации компонентов в Компьютер (Neural Network

ИНС могут быть написаны на любом языке. Используйте язык вы наиболее комфортно, или, по крайней мере, на каком бы языке это «совместимы» с текущим набором вверх. (например, если у вас уже есть робот, разговаривающий с машиной Windows через последовательное соединение с использованием C#, то почему бы вам не использовать эту существующую установку в качестве основы для вашего проекта? уже полуфабрикаты!). Если это Java или C#, то идите. Нет причин, по которым вам нужно будет изучать новый язык. На самом деле, я бы порекомендовал не, изучив новый язык для вашего проекта. Вы предпочтете потратить свое время на свою интересную проблему, чем пытаться выяснить пыльные уголки какого-то нового языка.

2

Я согласен с Shaggy, что визуальное представление сетевого комплекса, достаточного для управления роботом, скорее всего, не будет интересным видом.

Вы смотрите на похожие существующие проекты? Некоторые быстрые поисковые запросы показали The Zero Dimension - попытку визуализации некоторых аспектов обучения ANN в 3D. Вот их video demo. Возможно, это похоже на то, что они, вероятно, дадут вам представление о том, какие аспекты вы делаете и не хотите контегрировать.

Вот article на визуализации структуры ANN (опять же, только первый, на который я наткнулся). Как вы видите, визуализация не очень проницательна.

Говоря о языке - просто выберите тот, с которым вы наиболее комфортно. Или выберите тот, с которым вы хотели бы улучшить свой опыт - если у вас есть отношение и время, чтобы учиться во время этого проекта.
Следует иметь в виду, что изучение ANN - это сложная задача, и достижение разумной производительности на языках более высокого уровня, таких как C# или Java, вероятно, будет сложнее, чем на «нижнем уровне», например, на C++.

Я также предлагаю вам рассмотреть возможность использования существующих библиотек для работы с NN. Я использовал пакет STATISTICA Neural Networks (стоит немного денег) несколько лет назад, по-моему, есть также библиотеки с открытым исходным кодом.
Правильно и эффективно реализовать хороший алгоритм обучения ANN, поэтому вы можете захотеть воспользоваться существующей реализацией и сосредоточиться на части GUI/визуализации.

1

Я рекомендую использовать C# со свободной нейронтонной сетью. Я думаю, это даст вам все, что вам нужно

1

Рассмотрите Matlab/Labview. Комбинация позволяет легко визуализировать работу вашей программы и строить внутренние состояния.