All streams
Search
Write a publication
Pull to refresh
2
0
Andrew Vasilyev @retran

User

Send message
Да, LINQ — это типичный холивор и претензия больше вкусовая. Да и давать его в руки, до изучения какого-нибудь SICP не стоит, а то такого можно наворотить…

Но:
1. Функциональное программирование традиционно и успешно применяется в западной академической среде, так как близко к классической математике.
2. Именно ИНС очень хорошо на него ложатся.

Если присмотреться к моему коду (в комментариях выше), то видно, что у меня там в методах Recognize и Activate записано по сути математическое определение перцептрона.
Собственно, проверил свой вариант рандома и ваш. Перцептрон работает абсолютно одинаково. И че, собственно?
И конечно:
if (random.Next(2) == 1)
SAMatrix[i][sindex] += 1;
else
SAMatrix[i][sindex] -= 1;

Code completion меня слегка подвел ;)

И поясните, пожалуйста, как функциональщина связана с ООП и каким образом вы их сравниваете?
dumpz.org/186798/

Забыл удалить старую инициализацию матрицы.
dumpz.org/186796/

Исправлено все что вам не понравилось.
Засекайте время.
Я где-то про код написал? Я написал «алгоритм» ;)
Моя цель была показать почему ваш код мне не нравится. А алгоритм полностью и вполне специально взят из вашей же статьи на википедии, дабы сохранить чистоту эксперимента.
Посмотрите ;) Только добавьте инициализацию порогов в конструктор, это действительно косяк. Хотя и так должно работать ;)

И да, опять минусы вместо аргументов? ;)) Я же говорил уже, что плевать, все равно заплюсуют как и мои предыдущие комментарии. Тем более, что грамотных разработчиков на хабре хватает ;)

Дальше на споры с вами тратить время не хочу, просто пожелаю того, чтобы вы научились программировать и умерили самоуверенность.
Хотя, если присмотреться, то у вас получается 0.5 вероятность установления связи, 0.25 положительной и 0.25 отрицательной. Смысла такого назначения не понимаю, если вы же доказывали, что они могут быть случайными.
Отнюдь. Я выражаю общепринятую практику, выработанную поколениями разработчиков большой кровью. А вы опять считаете себя самым умным.

Насчет 4, ну если вы этого не понимаете — то это ваши проблемы ;) Тут на днях был топик про цикл for, я там много на эту тему писал.
Да. Отсутствие связи — это ноль в матрице.
А у вас там оверхед со случайным выбором сенсора, с которым нужно связываться.
ВНЕЗАПНО, в дотнете есть аж целых два общепринятых стиля, которые используют 99% компаний: майкрософтовский и дотнетовский.
1. Тратя память, нарушая уже давно принятый стиль индексации элементов в множествах с нуля…
2. Любые префиксы в дотнет(кроме интерфейсных) — глупость. На эту тему ругался даже лично Симони, который их придумал.
3. Вы опять моделируете с помощью ООП объекты, которые моделировать не нужно. Да еще и криво ;)
4. Да, это функциональщина.
То же что и ваш, кроме той части, которая бросает в перцептрон обучающую выборку.
Ни один стиль который я видел этот спорный на самом деле вопрос не регламентирует ;)
В отличие от именования.
Вы бы лучше придрались, что я в конструкторе забыл проинициализировать ATreshold и RTReshold.

Фигурные скобочки там и не нужны, однострочная операция все-таки.
tac, при всем моем уважении, у вас опыт промышленной разработки есть? Или только академический?
Код откровенно «студенческий» и показывать его в качестве примера совсем нельзя:
1. Почему у вас все массивы больше на один элемент чем надо и не используют нулевой?
2. Именование ужасное в нарушение всех существующих в .net стилей. Даже не учитывая ошибок в английском.
3. Дикий оверхед из-за использования ООП, там где оно не нужно, и, более того, только усложняет жизнь.
4. Код сам по себе процедурный. Холиварно, но сейчас модно использовать linq.

Чтобы не быть голословным и зная ваш характер, накидал свой вариант: dumpz.org/186774/
Спасибо, очень нужна была такая штука ;)
Наверное, потому что они на самом деле не недостатки?

Information

Rating
Does not participate
Date of birth
Registered
Activity