Искусственный интеллект php

Discussion in 'PHP' started by freshman, 24 Aug 2010.

  1. freshman

    freshman New Member

    Joined:
    1 Aug 2010
    Messages:
    37
    Likes Received:
    0
    Reputations:
    0
    незнал куда поместить решил тут :) ибо мои вапросы к примеру на пхп :)
    увлекся я темои о распознании шрифта на каптче и вот оказался тут :)
    былобы неплохо если бы ктот создал отделныи отдел для етой темы гдбы можно задовать вапросы на тему искуственова интелекта там прогромирования логичиских игр и другои жесткои бредятины если таковои ешё нет :) п.с я ненашол

    прочитаф статью http://habrahabr.ru/blogs/artificial_intelligence/40659/
    скачал код каторыи предлагается внизу на пхп
    ну и почти всё понял :) кроме 2 функцый

    public function ask($vector)
    {
    $sum = 0;
    for($i=0;$i<count($vector);$i++)
    {
    $sum += $vector[$i]*$this->W[$i];
    }
    if($sum > $this->porog) return 1;
    return -1;
    }



    а точнее непоиму вот ето $sum += $vector[$i]*$this->W[$i]; что это вобше что оно мине даёт
    тагже непойму сравнение if($sum > $this->porog) где порог=100 почему он 100 негде нестоит

    насколко я понял если в векторе много нуллеи ето тогда (линия) то сумма становится менше 100 а сотня ето число даже если умножиш 8 ибо 8*8 какбы небыла распаложена линия максимално занимает 8 клеток всеравно будет менше 100 хз что в етом роде :)

    и вот ету функцию недоконца понимаю

    public function teach($vector, $d)
    {
    if($d!=$this->ask($vector))
    {
    // teach
    for($i=0;$i<$this->size;$i++)
    {
    $this->W[$i] += $d*$vector[$i];
    }
    }
    }


    а точнее вот ето $this->W[$i] += $d*$vector[$i];
     
    #1 freshman, 24 Aug 2010
    Last edited: 24 Aug 2010
  2. roxblnfk

    roxblnfk Elder - Старейшина

    Joined:
    6 Feb 2010
    Messages:
    189
    Likes Received:
    42
    Reputations:
    19
    >>> а точнее непоиму вот ето $sum += $vector[$i]*$this->W[$i]; что это вобше что оно мине даёт
    это сумматор, умножает веса элемента на его значение
    >>> тагже непойму сравнение if($sum > $this->porog) где порог=100 почему он 100 негде нестоит
    он должен быть динамическим, по сути, но для размерности 64 сотня это нормально (хотя тут много чего учесть надо)
    (веса рандомны от 0 до 10, максимально $sum может быть 640 без обучения)

    функция teach - обучение
    в цикле уточняются веса связей
     
  3. freshman

    freshman New Member

    Joined:
    1 Aug 2010
    Messages:
    37
    Likes Received:
    0
    Reputations:
    0
    возникла идея написать прогу каторая распозновало бы мой подчерг или хотябы цыфры от 0-10 идея такая обучить однослоиный перцептрон бирному представлению каждой цыфры
    писать буду на чистой бумаге которую патом отсканю и сохраню как картинку проблема в том чот низнаю нужно ли тут применять генетичиский алгоритм тоест создавать особей скрешиват мутировать делат естествиныи отбор если да то (какое может быть решение тоест кчему должен стримится алгоритм к какому условию завершения ? может нахождения коэффициентов, в уравнении параболы, исходя из нарисованного от руки изображения " ? то решение то что на хакер.ру с ГА для каптчи чересчур высокое для меня да ешё там в самом исходнике нету коментоф :) )

    или может вовсе ненужен никакои ГА алгоритм просто вырезать побуквену и научить сеть (однослойного перцепрона) ? тогда толко как прога наидет етот сам текст :) если без ГА
    или с ГА но без сети тоесть чтобы патом распознание шло по какомуто шблону ? или лудше ГА+Перцептрон тогда какое должно быть условие для ГА тоесть к чему должна популяцыя стремится :/

    и ешё как иммено выбирается сам порог Функции активации в нейронных сетях тоест ты сказал что 100 для матрицы 8*8 ето ок ты какуето формулу исползуеш ? прочитал пару статеи про нейро сети но как вичислять порог так и ненашол читаю шас книгу пор основы нейроных сетеи
     
  4. roxblnfk

    roxblnfk Elder - Старейшина

    Joined:
    6 Feb 2010
    Messages:
    189
    Likes Received:
    42
    Reputations:
    19
    Первым делом спроси у Gifts, где найти учебник русского языка для 5-6 классов (могу сразу ответить - в гугле)
    Сомневаюсь, что за тебя кто-то будет раскуривать все эти вопросы.
    Порог 100 может быть и мал в том алгоритме, зависит от обучения, ибо после него (видно в сохранённом файле) некоторые связи имеют вес с полсотни и два элемента с такими весами сразу переваливают за порог в сумматоре...
    Лучше выкини эти однослойные перцептроны, не парься над написанием ГА, а просто бери сразу готовую нейронку и парься с ней, но прежде чем лезть в подчерк попробуй распознать все буквы и цифры шрифтом Tahoma 20 размера, дабы получить хоть какой то опыт.