All streams
Search
Write a publication
Pull to refresh
-15
Евгений @mpakepread⁠-⁠only

Веб программист

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

Опять же с этим не поспоришь. У меня код очень своеобразный и уверен на 100% любой его сочтет говнокодом. На говнокоде даже есть пару моих перлов. Это еще одна причина не показывать свой код. Это слишком интимно, пишу как мне удобно, очень часто это не совпадает со стилем и синтаксисом среднестатистического кодера.
Пока есть ощущение, что вы там под капотом делаете какую-то хрень, доверять которой нельзя.

Это да. Без свистелок и перделок не обходится. Неужели без исходного кода никак? Я надеялся подзаработать на том, чем занимаюсь последние пять лет. А так как то некрасиво получится просто подарю результат своего труда другим. Еще и найдутся те, кто скажет что это их код. Вот зачем нам все это? Видите, и сайт подшаманил, пару ошибок уже исправил метрики выложил. Форму для расчета вживую данных и апи для автоматизированного. Выложить код я пока не готов психологически. Но общаться интересно. Не так много людей с которыми совпадают интересы. Со знакомыми редко удается обсудить проблемы машинного обучения и какой нибудь очередной алгоритм дата майнинга.
Попробовал расчитать данные на своем алгоритме. Он расщелкал задачу за 454 секунды и 31 эпоху биморф.рф/bmf/wine со 100% результатом хотя написнао, что только один алгоритм дал 100% результат с парнями просто пытались как то измерить вновь написанный алгоритм habr.com/ru/post/474954 ваш тест подошел хорошо под такой алгоритм проверки.

archive.ics.uci.edu/ml/datasets/Wine
image
Кстати, написано, что только один алгоритм RDA смог достигнуть 100% точности
image

В общем следите, это должно быть интересно биморф.рф/bmf/wine

Блин все закончилось быстрее чем я смог написать этот текст. Все закончилось за 454 секунды это меньше чем за 10 минут. И за 31 эпоху. По примерно 20 секунд на эпоху. Вот полный лог всех обучений биморф.рф/bmf:log/wine ну так себе задачка сетное слово. Все данные можно првоерить в форме. Подставлять свои несуществующие, сеть дожна выдать предсказание даже для данных на которых не училась.
Конечно будет. Я даже не сомневаюсь. Вот кстати очень удачно вышел пост по проверке разного типа сетей. Предлагаю поиграться с указанными в статье данными. archive.ics.uci.edu/ml/datasets/Wine описание решения на статьи на хабре habr.com/ru/post/475552 статья вышла сегодня в 17:16 так что все четсно. Я уже начал расчитывать сеть биморф.рф/bmf/wine результаты отображу справа буквально через час. Плюс могу лог отобразить прогресс сети. Должно быть интересно.

Самый главный параметр это «Процент полного совпадения %» и пока он равен 2.8% затрачено 635с. и обучена 21 эпоха обучения на моем домашнем компе. Обратите внимание как будет расти этот процент исходя из затраченного времени.

Самый большое результат это 0.976~97% на обучении и 0.990~99% на тесте. Если мне удасться расчитать эту сеть на 100% это будет хорошим результатом? Здесь можно увидеть подробный лог по каждой эпохе обучения с указанием процента и количеством ошибок. Сеть сейчас обучается обновляйте страницу для получения последних данных биморф.рф/bmf:log/wine
Опять же давайте сравним с человеком. Вы ему даете примеры чего то ну к примеру двух инопланетных существ «кошечки» и «собачки» которые он изначально плохо различал и на какой то выборке проверяете научился ли он их различать. А он все еще ошибается. Логично он вас просит скажите мне кто был на фото из тех примеров на которых я ошибся, чтобы я научился их отличать и следующий раз дам правильные ответы. С каких то ракурсов это получается плохо но я могу этому научится. Это и есть скормить недостаточно обученную неизвесную (тестовую) выборку алгоритму. А вы ему в ответ: «Ты должен работать хорошо на тех данных которые тебе не давали» так вот задача сводится дать как можно больше данных, осветить все ракурсы чтобы человек (или что угодно) мог определять предметы с любой стороны. Неопределение с какой то стороны может говорить лишь об одном их не давали человеку в качестве обучающих. Он просто не видел эти существа с того ракурса который есть на тестовой выборке. Если вы хотите чтобы это работало нужно и тестовую выборку дообучить. В человеческом мире это так работает. А в НС нет. В НС все еще обучают десять по разным алгоритмам и берут одного из десяти с самыми лучшими результатами а остальных убивают как давших неправильные ответы на неизвестной ему выборке. А одного последнего замораживают чтобы он не дай бог не поломался при поступлении новых данных.

Кстати а почему нельзя просто докинуть?
Вам нужно, чтобы модель работала на данных, которые ей показаны не были — на тестовой выборке, которую нельзя просто взять и докинуть в модель.

Или это всетаки очередной «фатальный» недостаток НС который так упорно не хотят признавать мои собеседники? Я просто не умею готовить НС говорили мне они, у НС нет «фатальных» недостатков повторяли они.
Во-вторых, я уверен, что оно у вас так хорошо «работает» лишь на трейн-сете, а не на валидационном сете. Таких фальстартов я как преподаватель видел сколько угодно.

Я снова боюсь навлечь на себя поток критики но скажу. Я честно боюсь «заразится» этим правильным подходом к решению. И проверку работы сети выборками которую все считают эталонным я считаю в корне не правильной. Обьясню почему. Давайте возьмем две небольших сети. Ну к примеру по сто нейронов и задачу чуть больше ста нейронов та которая решилась бы за двести. И мы обучили обе сети НС и не НС и что мы имеем. Нейронная сетка показывает плохие результаты это логично ведь ее обучающая способность ниже чем необходима для освоения всей выборки. НС переобучилась или «запомнила» к примеру или алгоритм обучения был плохим, может неправильная структура была взяла много причин почему у вас плохо проходит тестовая выбора скажем на 5% хеже чем вы расчитывали (очень много). Что это значит для неНС сети. Вы просто докидываете тестовую выборку и он ее дообучает увеличивая свою сеть до нужных 200 нейровно. Как я уже озвучивал при обучении старые данные не ломаются долько добавляются новые. После дообучения вы имеете ситуацию, что размер сети увеличился, обучающая выборка работает еще лучше чем работала, ведь вы ее в этот момент тоже обучали и тестовая выборка тоже работает, ведь вы ее только что обучили. Выводы: Тестовые выборки необходимы только на алгоритмах которые не смогут дообучить ее при необходимости. Для неНС эти выборки просто бессмысленны, ведь обучение дешевое и все ресурсы затраченные на проверки проще пустить в дообучение. Для неНС такая проверка просто бессмысленна. Если обучающая выборка будет небольшой то и неНС сеть не вырастит оставшись маленькой. Если обучающая выборка большая неНС сеть растет до размеров обучающей способности которая необходима для освоения этого обьема обучающих данных. Для нее есть только данные которые раньше не обучали и их не нужно проверять их нужно дообучать. Представьте человека. Вы учили учили а он сдает тест не на 4 минимальных балла а на 3.7 говоря шаблонами НС этот человек плохо прошел тесты. А в «нормальной» ситуации мы просто ему говорим иди учи дальше. Мы же знаем что обучающая способность твоего мозга ничем не ограничена и чтобы все работало хорошо нужно всего лишь приложить больше усилий к обучению. Я боюсь того момента когда я скажу кому то «проверять на тестовых выборках» это значит я стал мыслить как все эти миллионы «доцентов» читающих одну «вредную» литературу и учившихся у одних и тех же преподавателей, каждый раз в своих эксперимента пробующих одно и то-же. После таких шаблонных преподавателей и приходится доказывать что мир круглый а не квадратный как говорил учитель. Я готов. Заминусуйте меня полностью.

image
Как раз последнее время все очень хорошо. Все, на что расчитывал работает и показывает гарантированный результат. Поэтому и решил начинать потихоньку рассказывать окружающим. Действительно. Рост замедляется. По достижении 99% совпадений большая часть уходит на «перебирание» правильных прогнозов. Будь неправильных больше обучение проходило бы значительно быстрее. У меня в одной из задач 99.9% уже держится эпох десять на каждой эпохе идет расчет 1-2 неправильных примеров и снова эпоху приходится начинать сначала. Десятки раз когда оставался один неправильный прогноз, но окончательно выловить эту ошибку чуть ли не сложнее того чтобы дойти до 99%. Я так понимаю сети нужно найти и поменять какой то из верхних нейронов. Но чтобы дойти до этого изменения нужно перебрать возможные варианты во всех нижестоящих. Ошибка в установке «веса» была допущена на ранней стадии формирования сети. При этом так как это «двоичный алгоритм» весов всего два 0 или 1 Нахождение и изменение верхнего нейроны просто вопрос времени. При этом процент правильных прогнозов не уменьшается как в НС при переобучении (падает в максимумы) а стремиться к оптимальному при любом состоянии.

За время пока мы тут обсуждали статью я написал интерфейс которым можно загружать свои обучающие выборки. Хотел бы попробовать на чужих данных потренироваться. Но пока никто не воспользовался. Нужно создать сеть и загрузить в нее файл с данными. В описании указать поля для обучения. В результате появится форма как на ирисах и бетоне. Апи для автоматизированного получения результатов расчета прилагается к каждой задаче плюс дообучение больших данных теоретически «бесконечно» каждый раз повышая процент правильных прогнозов.

По поводу войны и мира тоже думал :) но я больше склоняюсь к каким то диалоговым задачам. Продажа чего нибудь или скрытый маркетинг. Чтобы алгоритм потренировавшись на диалогах пользователей сам стучался и обсуждал какую нибудь общую тему. Повысив степень «доверия» уже максимально «ненавязчиво» предлагал услугу или событие интересное собеседнику. Восприятие такого рода продвижения должен быть максимально эффективно. Да и человек от него должен получать удовольствие а не раздражение. Общение в наше время вещь востребованная. Я какое то время проработал в фирме с «продажниками» мне эта тема очень близка. Сейчас теоретически все есть для решения такого рода задачи. Производительность сильно увеличилась когда пару недель назад я решил вопрос с возможностью в нескольких потоках обучать одну задачу. Сейчас задачи на сервере расчитываются в 15-20 потоках эффективность возрастала на порядки. Потихоньку начинаю почитывать документацию по расчетам на видеокартах. Слабо пока представляю как можно к ним обычные алгоритмы прикрутить. В общем есть куда двигаться.
Чет вы рано о могиле заговорили. Я планирую жить вечно. Надеюсь еще массу задач сделать.
Прям в точку. Действительно это очень близко. ТОлько я не понял удалось кому то до этого сделать эту сеть или нет? Не нашел эту информацию. А так, да. ОоОчень близко. Хотя много написано по другому вот к примеру это «причем mi может принимать как положительные, так и отрицательные значения.» Это уже не двоичный алгоритм. В двоичном есть только один и ноль. Нет отрицательных значений и отрицательные значения исчезают после установки входных сигналов (0 или 1) и появляются только при интерпритации расчетного значения сети опять же из (0 или 1) но многие вещи очень близко.

И вот это что такое?

«Используется обычно до 3-х уровней (слоев). Использование более 3-х слоев не осмысленно.» это из описания «нейроподобные растущие сети». Получается, что Ященко не смог сделать растущую сеть больше трех слоев? Реально в работающих сетях этот параметр уже переваливает за сотни и тысячи, хотя миллионы и миллиарды думаю реальность ближайшего времени ограничивает только производительность машины на которой происходят расчеты а не «осмысление»

Опять же а это? «Появление ложных фантомов (ложных аттракторов) – присутствует» Ничего подобного нет в уже работающей сети. Никаких фантомов. Я так понял человек был в правильном направлении, но не смог доработать свое детище до конца. У меня на это ушло пять лет первый раз сеть сложилась 13 июня 2019 года в 4 утра с тех пор просто идет оптимизация производительности.

И еще. Слово двоичная не зря выведена в заголовок. Двоичная это базовое свойство сети. А это из присутствующих я так понял осмыслить никто не смог. В двоичном представлении нет отрицательных значений, нет списков. Есть только два значения «включено» или «выключено» 1 или 0 только в таком состоянии можно полноценно интерпритировать сигналы в обе стороны и полноценно расширять сет. Любой значение больше двух дает «Появление ложных фантомов» хотя очень много в приведенных статьях сделано правильно. Ященко молодец! Спасибо автору. Теперь можно сказать не зря было все это общение.
Об этом и речь. Я не могу открыть код следовательно по правилам я не могу победить. Смысл участвовать в соревнованиях в которых не можешь победить? Думаете будет хорошо звучать «Меня дисквалифицировали на кагле»?
Идти куда то без единого шанса победить? Просто в правилах написано, что я победить не смогу. Чет не торкает меня от таких перспектив. Ну реально как то это ненормально. Есть отечественные соревнования. Думаю в них поучаствовать, но опять же внимательно прочитав правила.
Как раз это и удивляет. Почему она за пятьдесят лет кроме перделок и свистелок ничего более существенного не может сделать. Вам не кажется, что в этом есть какой то сокральный смысл. Если мы мятьдесят лет делаем одно и тоже но ничего не происходит, то нужно менять свои подходы а не продолжать всех убеждать что все просто «не умеют их готовить». Ну если круглые колеса которые ну нужно учиться двадцать лет настраивать по вашему что-то ненужное то я сдаюсь. Я вам сейчас говорю об алгориме который не нужно настраивать. Все работает из коробки. В нем потолка за которым он перестает работать а «просто работает дальше» какой бы большой файл с обучающими данными у вас не был. Научившись передвигать не катаемые колеса можно хоть на лыжах все перетащить летом но на круглых колесах удобнее. Предлагаю выбрать алгоритм и обучить. Пусть победит сильнейший.
Да. я уже смотрел этот датасет. Вы в курсе, что в нем есть имена пассажиров? Сеть просто привяжется к именам пассажиров. Запомнит каждого из пассажиров поименно. Набор данных не совсем корректный и минимум требует доработки (удаления некорректных полей) Я уже кучу данных пересмотрел в том числе и эту задачу. В том виде в котором данные есть сейчас они непригодны для обучения. Это все равно что задать в наборе данных уникальный идентификатор строки. Алгоритм обучившись по нему и будет все ответы выдавать.
Данные расчитываются через апи используя удобные форматы. При отсылке пост запроса на адрес сети она выдает результат в json формате. Написав небольшой скрипт в 20 строк можно с легкостью проверить данные любого обьема. Все это возможно сделать прямо сейчас, загляните во вкладку сеть консоли браузера. Если набор данных будет вашим, то вам не составит труда проверить все данные.

Создавайте сеть с главной страницы, закидывайте свой датасет указав поля для обучения я поставлю его на расчет проверим вместе.
Предлагаете заведомо распрощаться с возможностью победить? Поучаствовать ты можешь, но победить никогда. Ну как то так себе и условия и мотивация. Я уж лучше свои местечковые данные буду расчитывать книги там может для написания текста, капчи, хеши и курсы доллара и биткоина но где мне не будут правила запрещать побеждать. Благо, что в мире еще осталось масса хороших задач. С удовольствием поучаствовал бы в конкурсе где важен результат а не инструмент. Но пока я таких не нашел. Буду признателен если подскажите.
То, что вы умеете хорошо настраивать НС это очень хорошо. Но представьте если этого даже не требуется делать. Опять же картинку видели где специалисты катят повозку на квадратных колесах? Они отлично научились ее «таскать» вопреки всем законам физики и превзошли всех на этом поприще. Смысла что-то менять не видят. Их сложно убедить в том, что они заблуждаются. Уверен, что у вас работы в ближайшее время будет много. Но на далекую перспективу я бы не стал загадывал. Мир слишком быстро меняется, чтобы быть настолько самоуверенным. И каждый новый этап оставлял за бортом куча специалистов в своих областях, отличных специалистов по тасканию тачек с квадратными колесами.

habrastorage.org/webt/ma/eo/am/maeoamm7d-cgnya6lf4nsubljbg.png
Честная проверка это результат работы сети. Как раз его я на сайте и предоставляю возможность изучить. Поставляйте данные и сеть вам выдаст результаты. Разве не достаточно для проверки? Плюс справа выводится информация о сети. Затраченное время, размер сети, процент совпадений. Для проверки параметров не из обучающей выборки достаточно ввести соответствующие входящие данные. Возможно интересно будет проверить на ваших данных. Создайте сеть и загрузите данные после расчета сможете проверить точность прогнозов.
Этот датасет есть не только на кагле. И изначально я его нашел на другом сайте archive.ics.uci.edu/ml/datasets.php и только потом увидел его на кагле.

Прочитал условия учатия, там есть пункт относительно лицензии на код.

Open Source: You hereby license and will license your winning Submission and the source code used to generate the Submission under an Open Source Initiative-approved license (see www.opensource.org) that in no event limits commercial use of such code or model containing or depending on such code. For generally commercially available software that you used to generate your submission that is not owned by you, but that can be procured by the Competition Sponsor without undue expense, you do not need to grant the license in the preceding sentence for that software.

Насколько я понял текст условием для программного обеспечения является открытый исходный код. Меня в прошлый раз похожий пункт беспокоил. В этот чет раз тоже напрягает.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity