GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.1 (1)   Поиск:  
 Автор Тема: модель отдельного нейрона
гость
213.232.248.*
модель отдельного нейрона
Добавлено: 19 апр 06 14:58
Здравствуйте!
Очень нужна помощь! пишу на VC++..чайник полнейший, т.к. начал этим заниматься недавно.

В программе следует ввести объект Neuron, допустим, но нужно так же учесть множество мелочей..
проблема такая: есть множество нейронов, соединенных между собой.
Если взять отдельный нейрон, то его входной сигнал является выходным сигналов другого нейрона. Так же нужно наверное пронумеровать эти нейроны. Так вот, как при написании программы учесть это?

надеюсь, что кто-нибудь что-нибудь понял
и очень надеюсь на любую помощь
[Ответ][Цитата]
Андрей
Сообщений: 3943
На: модель отдельного нейрона
Добавлено: 19 апр 06 20:25
Я знаю только обджект-паскаль, но думаю что принципы одинаковы и в Ц++. Я подозреваю, что Вам нужно создать сначала объект со свойствами, которые будут моделировать входы и выход нейрона. Вероятно это должны быть переменные определённого типа (тип будет зависеть от того сигнала, который Вы собираетесь передавать между нейронами).
Далее Вам нужно создать массив таких нейронов и установить связи между ними, указав для каждой связи каждого нейрона с каким нейроном он связан (по индексу нейрона в массиве или по указателю). Далее для каждого нейрона нужно сделать методы приёма/передачи сигналов от своих соседей. Потом установить начальные значения чего Вам там надо и итерировать методы приёма/передачи сигналов для каждого нейрона в цикле по достижению нужного Вам условия.
[Ответ][Цитата]
гость
213.232.248.*
На: модель отдельного нейрона
Добавлено: 23 апр 06 20:44

т.е. примерно что получается?!
вводим класс..
class Neuron
таак...что же надо дальше?..знать веса и "адреса" нейронов..получается пары массивов
{
double w[100][тут должен быть адрес]
int n; //количество нейронов
double y(); // выходной сигнал Y является входным (Х) для какого-то другого нейрона..
neuron(int name, int n, w0) //имя, номер и вес..
}
их как-то пронумировать надо еще...
[Ответ][Цитата]
Андрей
Сообщений: 3943
На: модель отдельного нейрона
Добавлено: 23 апр 06 23:26
1. Вводим класс.
class Neuron
{
double х[100] //тут должны быть адреса связанных нейронов
double y //выходной сигнал Y является входным (Х) для каких-то других нейронов
function CalculateY //метод для расчёта у из х
}
2. Делаем массив таких нейронов нужного размера (зависит от числа нейронов) и для каждого нейрона задаём адреса Х (можно указать индексы этого массива), потом устанавливаем начальные значения Y.
3. Потом для каждого нейрона высчитываем CalculateY.
4. Повторяем шаг 3 до достижения нужного условия.
[Ответ][Цитата]
Analyzer
Сообщений: 1
На: модель отдельного нейрона
Добавлено: 30 апр 06 17:26
Сначала нужно реализовать сам нейрон:
1) нейрон имеет несколько входов и один выход;
2) каждому входу соответсвует свой вес, также на выходе есть порог.
Для простоты реализации можно все считать в матричной форме, поэтому массив весов и прог объединяются в одном, следовательно процедура подбора этих весов будет везде одинаково.

Т.к. нейроны объединяются в слои то неплохо бы реализовать класс описывающий нейронный слой который бы содержал в себе массив нейронов, т.к. входной вектор всего слоя поступает на вход каждого нейрона, то процедуру распределения проще реализовать цыклом.

Аналогичная ситуация с нейронной сетью, она тоже содержит массив только уже не нейрнов а слоев.

Для представления входных данных и весовых коэффициентов, в реализации своей нейросети я использовал стандартный класс std::vector<double>, т.к. не приходится постоянно следить за границами.
[Ответ][Цитата]
 Стр.1 (1)