За последние 24 часа нас посетили 20267 программистов и 1010 роботов. Сейчас ищут 442 программиста ...

Нейронная сеть на PHP. Моя первая, работающая :)))

Тема в разделе "Решения, алгоритмы", создана пользователем html-программист, 12 июн 2012.

  1. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Очень захотелось похвастаться, что у меня получилось :)))))

    Мой однослойный персептрон (10 нейронов) находится здесь:
    http://xcont.com/perc/newperceptron/

    Ну а исходники можно посмотреть здесь:
    http://rasty.kiev.ua/viewtopic.php?t=18964

    Над чем думаю поработать - функция активации у меня жесткая (Функция Хевисайда). И соответственно порог для этой функции пришлось взять от балды. Для 10 картинок 3х5 - это не критично, но если захотим сделать персептрон серьезней - надо заюзать какую-то сигмоидальную фукцию. Но я пока не могу въехать, как это сделать.

    PS. Потом чуть доработаю, чтобы можно было нейронной сети скармливать некорректные картинки. :)

    Добавлено спустя 12 минут 47 секунд:
    Могу же, когда хочу)))

    Добавлено спустя 34 минуты 58 секунд:
    PS. Для тех, кто не въехал. Обучить за раз можно только одну цифру. Не надо вводить в форме 0123456789, надо вводить по очереди 0, 1, 2... и после каждого ввода изучать.
     
    Walk нравится это.
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
  3. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    По поводу обучения, то что сейчас на сайте - вряд ли получится обучить распознавать больше 4-5 символов. Дело в том, что там порог активации стоит 100. Больше ставить не могу - не хочу сервак грузить. Тестировал с порогом 1000 - все символы изучает.
    Кроме того, для того, чтобы сделать сеть умнее - не обязательно порог завышать. Можно указать дробный коэффициент (0.01 например), и прибавлять к весовым коэффициентам +-(вход*коэффициент обучения). Результат тот-же, что и с порогом - сеть учится дольше, но становится умнее.
    И еще одно, чем больше итераций обучения - тем меньше легче обучается сеть.

    Добавлено спустя 1 минуту 3 секунды:
    В общем, с персептроном справился. Теперь можно изучать многослойные персептроны, и сети с обратными связями :)))

    Добавлено спустя 57 минут 38 секунд:
    получилось все 10
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    ты бы со статистикой подружился. цены б тебе не было.

    Добавлено спустя 35 секунд:
    но всё равно я против нейросетей на пхп, кроме как концептуальной модели.
     
  5. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Не, ну почему. Скажем у нас есть сайт, на котором пользователи могу оставлять сообщения (личные сообщения, записи в блогах, комментарии). Другие пользователи могу нажать кнопочку "спам". Наша сеть учится находить какие-то шаблоны, по которым определяет вероятность, что сообщение спам (количество http в сообщении, какие-то слова, которые используются в основном спамерами, еще хер знает что...). Такую систему организовать не сложно, но эта систему будет покруче чем капчи с матанализом.
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    Просто пхп это язык заточеный под текст, как ни крути.
     
  7. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Но нейронная сеть на нем работает. Сегодня хочу попробовать генетический алгоритм написать, управляемый персептроном.
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    Потрать на java вечерок
     
  9. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Java за вечерок не изучу.
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    КО
    Но ты всё ж потрать.
     
  11. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Новые языки программирования изучаю примерно так-же, как мой персептрон - научившись распознавать "2" и тем более "3" - напрочь забываю, как выглядит "1". Изучение JavaScript прекратил, когда забыл, как посчитать массив в php - count($a) или $a.count.
    Какой там синтаксис в Java?
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    Не о том ты думаешь. Языков программирования не существуют. Есть задачи и инструменты для их решения.
    В твоем случае идеально ковырнуть яву. А хочешь ты или нет - это дело только твоё.
     
    askanim нравится это.
  13. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Чем ява идеальней других инструментов?
     
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    тем, что тебе будет просто её освоить, работать она будет точно так же везде, и в отличие от пхп её можно будет запустить по-человечески.
     
  15. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Основной критерий, по которому я определяю, стану изучать язык или нет - работа с графикой. Если открыв новый инструмент, я в нем за полчаса не смогу написать клеточный автомат Конвея - инструмент закрываю и больше к нему не возвращаюсь.

    В Java я смогу за час написать клеточный автомат? Или надо будет неделями выяснять, как тут графическую библиотеку подключить, где ее вообще скачать и почему она у меня не компилируется?
     
  16. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Ладно. Будет на твоей совести.
    С зарплаты выделю 10% на покупку литературы по Java.
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    вот ты трусишка...

    Добавлено спустя 19 секунд:
    выдели себе на уроки английского, раз тебе требуется литература.
     
  18. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Зачем мне англицкий? Литературу я буду покупать с переводом. Поцоны посоветовали "Java 2. Библиотека профессионала." - Кей С. Хорстманн, Гари Корнелл. Там два тома, общим весом 1800 страничек. На первое время, думаю, должно хватить
     
  19. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    зря ты так. сам ведь понимаешь, что зря =)
     
  20. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Зря как? А как не зря?
     
  21. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    не зря учить английский и лезть в доки и примеры. Ты просто боишься. Зря. Там слов-то штук двести. Ты за две недели со словарём начнешь читать потом любую программистскую литературу.
     
  22. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Англицкий я знаю на уровне чтения доков. Но для того, чтобы изучить язык - мне нужен структурированный подход. Книга лучше всего подходит.

    Добавлено спустя 20 минут 59 секунд:
    Да и вообще. В книге больше полезностей чем в доке. В книге опыт, а в доках сухой синтаксис.
    Например, те кто с JavaScript
    Код (PHP):
    1. var numbers = [1,2,3,4,5];
    2. for (var i = 0; i < numbers.length; i++) {
    3.   alert(numbers[i])
    4. } 
    переходят на PHP, будут упорно лепить говнокод:
    Код (PHP):
    1. $numbers = array(1,2,3,4,5);
    2. for ($i = 0; $i < count($numbers); $i++) {
    3.   echo $numbers[$i];
    4. } 
    Даже не догадываясь, что это говнокод. А если почитать хорошую книгу (действительно хорошую), то там обязательно где-то в примечании заметят, что так писать некорректно.

    Ну и так по мелочам. Чтобы не лепить говнокод, лучше все-же начать с книги, а потом уже по мере надобности пользоваться доками-справочниками-мануалами
     
  23. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    Да, но с док быстро перепрыгиваешь в сообщество. Язык и подходы живут и меняются. Нужно быть в тренде. Без языка никак.
     
  24. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Зачем быть в тренде?
     
  25. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    html-программист, молодец.