Оцените перцептрон

Тема в разделе "LANGS.C", создана пользователем cupuyc, 6 дек 2010.

  1. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    Здравствуйте. Написал нейросетевой алгоритм. Хочу услышать критику по оформлению кода, реализации алгоритмов.

    PS Добавил рациональный нейрон. С ним, оказывается, значительно быстрее работает, чем с логистической функцией.
     
  2. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    чет аттач не работает(
     
  3. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    Однако...
     
  4. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    Rel, х.з. у меня работает. Залью ещё раз. Тут тоже самое, только архив зип.
     
  5. sysexit

    sysexit New Member

    Публикаций:
    0
    Регистрация:
    27 авг 2010
    Сообщения:
    176
    И что полезного делает аттач? Какой с этого толк?
     
  6. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    sysexit, можно чему-нибудь другому научить более полезному. Суть в том, что библиотека универсальная. Можно задавать любое количество слоёв, любое количество нейронов, любой тип нейронов. Соответственно и задачи сеть может решать самые разнообразные.
     
  7. sysexit

    sysexit New Member

    Публикаций:
    0
    Регистрация:
    27 авг 2010
    Сообщения:
    176
    Можно в кратце об этом рассказать, я не просвященый в этой области человек. Чему обучается программа в аттаче?
     
  8. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    Нейросеть в аттаче обучена перемножать 2 числа, каждое из которых принадлежит промежутку от 0 до 1. То есть нейросеть имеет 2 входа и 1 выход. Входы соединены с выходами через 1 скрытый слой нейронов из 10 штук.
    По сути дела перцептрон - некоторый аппроксиматор. Если есть какая-то неизвестная функциональная зависимость, которую сложно установить и описать аналитически, то можно её смоделировать при помощи нейросети. В данном случае в качестве такой зависимости взято обычное умножение двух вещественных чисел. Можно взять, например, операцию XOR и точно так же смоделировать.
    Из прикладных задач, например, можно смоделировать управление сложной технической системой (н-р самолётом) или предсказать значение стоимости валют, товаров на бирже. В общем перцептрон - универсальный аппроксиматор.
     
  9. sysexit

    sysexit New Member

    Публикаций:
    0
    Регистрация:
    27 авг 2010
    Сообщения:
    176
    Вобщем толку с этого ноль, по крайней мере для меня, я не понял пользы от этого.
     
  10. bug1z

    bug1z New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2008
    Сообщения:
    228
    По поводу оформления кода:
    Длинные ф-и не очень хорошо. Есть очень хорошая книга "Чистый код" Роберта Мартина. Там по этому поводу очень хорошо расписано.
     
  11. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    sysexit, я не знаю что Вам интересно и, уж тем более, не собираюсь писать что-то для Вашего интереса.

    bug1z, насколько я знаю, допускаются функции 20-30 строк кода. Проблема в том, что алгоритм обучения довольно громоздкий.. Разбивать его на отдельные функции даже не знаю как.
     
  12. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    Допилил свою НС. Теперь компилится на gcc. Поставил флажки оптимизации по скорости и сравнил быстродействие. Честно сказать, я такого не ожидал. Гцц'шная сборка тренируется почти вдвое быстрей с одними и теми же примерами, с одной и той-же конфигурацией сети, с одними и теми же начальными значениями. Magic!