0 / 0 / 0
Регистрация: 16.04.2019
Сообщений: 23
|
|
1 | |
Не могу разобраться как правильно сконструировать сеть28.01.2021, 20:29. Показов 7385. Ответов 45
Здравствуйте.
Помогите, пожалуйста, начинающему разобраться как правильно сконструировать сеть! Python, Keras. --------- По порядку: используемые обозначения
А1,А2,Б1,Б2,Б3,Б4,А3,А4,В1,В2,А5,А6,Б5,Б6,Б7,Б8,А6,А7,В3,В4 далее я каждой такой строке присвоил класс и получил А1,А2,Б1,Б2,Б3,Б4,А3,А4,В1,В2,А5,А6,Б5,Б6,Б7,Б8,А6,А7,В3,В4,К1,К2,К3 Это строка в CSV файле. Каждая строка может принадлежать только одному классу. Входной слой - 20, выходной - 3 А теперь вопросы:
Буду очень благодарен за содержательные ответы.
0
|
28.01.2021, 20:29 | |
Ответы с готовыми решениями:
45
Не могу разобраться с OpenMP! Как правильно распараллелить формулу? Ошибка. Не могу разобраться как js и html связать правильно Header(location) не могу разобраться как перейти правильно Не могу разобраться как правильно с файлами прямого доступа обращаться |
645 / 521 / 72
Регистрация: 20.09.2014
Сообщений: 3,354
|
|
28.01.2021, 21:39 | 2 |
Вроде четкая постановка задачи, но про классы давайте поподробнее поговорим.
К1, К2, К3 - это абсолютно независимые классы или они как-то друг от друга зависят? Функция активации - тангенсоида, говорят, лучшая функция активации, хотя вообще пофигу, не суть. Оптимизатор - обратное распространение ошибки (back propagation). Функция потерь для классификации - logloss. Ответ на вопрос "почему" из абстрактных исходных данных не дается. Может быть вам нужен градиентный бустинг или случайный лес. Хрен знает.
1
|
1486 / 1413 / 240
Регистрация: 19.02.2010
Сообщений: 3,914
|
|
28.01.2021, 22:51 | 3 |
бэкпроп не есть оптимизатор - это аналитический (в противоположность, например, численной оценке через конечные разности) способ вычисления градиента сложной функции, при этом наибыстрейший из всех возможных реализаций аналитического вычисления градиента.
2
|
0 / 0 / 0
Регистрация: 16.04.2019
Сообщений: 23
|
|
28.01.2021, 23:32 [ТС] | 4 |
Это я так называю... Извините, возможно это не так.
В общем так: есть строка данных, по определённому принципу я ей присваиваю "ответ" для обучения сети. Этот ответ может быть одним из:
Что касается самих данных. Только В1 и В3 - непрерывно возрастающие значения.
0
|
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
|
|
29.01.2021, 17:27 | 5 |
В качестве рабочего варианта:
ReLU, sigmoid SGD, ADAM Для бинарной классификации - бинарную кросс-энтропию prec, recall, f1
1
|
645 / 521 / 72
Регистрация: 20.09.2014
Сообщений: 3,354
|
|
30.01.2021, 09:32 | 6 |
Все правильно сделали, но неверна ваша мысль о том, что классы независимы, т.к. если один из классов равен 1, то остальные равны 0. Это довольно сильная зависимость, сильнее всякой статистической.
Замените на инкремент или еще что-то придумайте, иначе непонятно, в чем заключается обучение, когда у вас каждый раз что-то новое. Понимаете?
1
|
0 / 0 / 0
Регистрация: 16.04.2019
Сообщений: 23
|
|
30.01.2021, 20:35 [ТС] | 7 |
Я прошу прощения за не совсем верную информацию. Дело в том, что второпях глянув на название колонки, я не сразу вспомнил назначение колонки Time. Это не время. Это время формирования...
Давайте с начала. Есть некоторый объект, параметры которого я записываю таким образом: А1,А2,Б1,Б2,Б3,Б4,А3,А4,В1,В2 где
Из-за своей неопытности и не совсем чёткого понимания построения нейросети передо мной и встал вопрос по архитектуре. Я понимаю, что можно сделать максимально полный перебор, и выбрать наиболее приемлемые параметры сети. Но это может занять слишком много времени... Я так же склонен считать, что моя задача скорее всего относится к классификации. Но я в этом совершенно не уверен. В то же время я "нагуглил" разные пособия по созданию сетей. К сожалению, задачи классификации там показаны на примерах распознования картинок...
0
|
1486 / 1413 / 240
Регистрация: 19.02.2010
Сообщений: 3,914
|
|
30.01.2021, 21:00 | 8 |
Такие же номинальные признаки, как и К.
Т.е. требуют ту же схему кодирования. Или вручную - или разбирайтесь, как в keras управлять типами переменных (чтобы keras сам перекодировал каждый этот скаляр в вектор из нулей и единичек). Почему-то это 15-20 лет назад никому никаких трудностей не доставляло - автоматические процедуры подбора размеров и структуры нейронки были чуть ли не в каждом мощном нейропакете (и до сих пор есть - см, например, нейромодуль пакета Statistica http://statsoft.ru/products/ST... _Networks/ даже несмотря на то, что он в плане нейросеток почти и не развивался с тех пор, как его купили у исходной фирмы-разработчика и интегрировали в Статистику). Но если юзерам не хочется платить бабки за дружественный к пользователю нейрософт и хочется вручную ручками писать код (изучив предварительно для этого питон и API какой-то нейробиблиотеки) - пусть пишут
0
|
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
|
|
31.01.2021, 10:21 | 9 |
Посмотрите, описан общий подход:
Что такое автоматизированное машинное обучение (AutoML) https://habr.com/ru/post/449260/ В прошлом году встречал такое и для глубокого обучения
1
|
0 / 0 / 0
Регистрация: 16.04.2019
Сообщений: 23
|
|
31.01.2021, 11:07 [ТС] | 10 |
Честно скажу - я не понимаю зачем нужно преобразовывать числовые значения в нули и единички А вот нормализация данных мне понятна
Ну что тут сказать?
0
|
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
|
|
31.01.2021, 11:14 | 11 |
Ну это Вы зря, попросите у Деда Мороза и на следующий Новый Год ее получите.
Мне тоже нравится, но нехорошие дяди платят не за процесс, а за результат.
1
|
1486 / 1413 / 240
Регистрация: 19.02.2010
Сообщений: 3,914
|
|
31.01.2021, 11:40 | 12 |
Не все числовые значения - а только номинальные признаки.
Пусть день недели закодирован у Вас скаляром со значениями от 0 до 6 (или от 1 до 7 - не важно). Почему "расстояние" между понедельником и вторником должно отличаться от "расстояния" между воскресеньем и понедельником? При работе со скалярами - оно будет отличаться. После перекодирования в вектора из 0/1 - не будет. Тогда непонятно, почему Вы пользуетесь готовым транслятором с Питона и готовой библиотекой keras? Их Вам тоже надо написать вручную, с нуля. Вместе с ОСью для компутера
2
|
0 / 0 / 0
Регистрация: 16.04.2019
Сообщений: 23
|
|
31.01.2021, 11:56 [ТС] | 13 |
Одно дело заказать создание сети под конкретную задачу, и совсем другое - купить готовую.
Вы уж извините, но вопросы о том где и что прикупить не входят в круг моих интересов и не были обозначены в данной теме. Добавлено через 14 минут Оценил Вашу шутку А за ответ - спасибо. Я действительно об этом не подумал. Чайник ещё Но у меня тут-же возник вопрос: а зачем мне ""расстояние" между понедельником и вторником"? Они нужны для определения предпочтительного дня недели и часа (без минут и секунд) образования и полного формирования объекта. Сама продолжительность формирования у меня прописана отдельно (вплоть до мсек).
0
|
645 / 521 / 72
Регистрация: 20.09.2014
Сообщений: 3,354
|
|
31.01.2021, 13:08 | 14 |
Вы родили в воскресенье (7), а сформировался в понедельник (1). Родили в понедельник (1), а сформировался во вторник (2). Вероятно тут есть общие закономерности, а для вашей нейросети нет, так как (7,1) далеко от (1,2). Хорошенько подумайте над этим. Короче нейросети ваши переходы от воскресенья к понедельнику дорого обойдутся.
Отбросьте признаки несущественные, не надо всякую ерунду скармливать нейросети. P.S. Нейросети не надо покупать. Разве что мощи вычислительные (облако).
1
|
0 / 0 / 0
Регистрация: 16.04.2019
Сообщений: 23
|
|
31.01.2021, 16:41 [ТС] | 15 |
Я с Вами абсолютно согласен, что "всякую ерунду" нейросетям скармливать не надо
Но так уже встаёт чисто субъективный вопрос - а что ерунда, а что нет? Я, конечно же, чайник, но, будем так говорить, слегка "продвинутый" Из этого следует, что я потратил некоторое время на определение того, что важно, а что нет! Поясню - из наблюдений (а иначе как бы я мог определять класс связки объектов?), я пришёл к выводу, что эти данные имеют некоторый вес в "закономерностях"! Другими словами, объект, рождённый во вторник между 9-ю утра и 14-ю дня имеет несколько больше предпосылок для развития. То же касается и дня и часа "полного формирования"! Отсюда - то что вс-пн и пн-вт это одинаковая размерность, не имеет никакого значения! А вот то, что это ср или пт - уже весомый аргумент! Именно поэтому я и включил эти данные для обучения сети. Но тут же возникает и следующий вопрос: эти данные - в некотором роде, второстепенны (я пока так думаю). Отсюда - как сообщить сети об этом?
0
|
1486 / 1413 / 240
Регистрация: 19.02.2010
Сообщений: 3,914
|
|
31.01.2021, 20:04 | 16 |
К счастью, сетка при обучении сама способна разобраться в информативности (важности) входных признаков.
Более того, приличный нейрософт может затем показать юзеру значения информативностей признаков - чтобы юзер увидел "мнение" обученной сети. Следующим шагом удобства возможностей - идёт софт, который автоматом позволяет отстреливать неинформативные входы у нейросети (до тех пор, пока на обучающей выборке сетку удаётся дообучать сохранять требуемую точность распознавания). Так что при пользовании правильным нейрософтом - можно предварительно не думать и не отбирать признаки Можно просто совать сетке абсолютно всё имеющееся. Ибо зачем воспроизводить человеческую (возможно, ошибочную) логику, обучая сетку на "экспертно отобранном" наборе признаков? Интерес представляет ведь нахождение ранее неизвестных и нетривиальных закономерностей. А компутер таки влёгкую способен обсчитать и сотню, и тысячу, и больше признаков (и выделить затем из этой кучи признаков необходимые и/или достаточные) - там, где человек просто потеряется.
1
|
645 / 521 / 72
Регистрация: 20.09.2014
Сообщений: 3,354
|
|
31.01.2021, 20:37 | 17 |
На примере дней недели (воскресенье, понедельник) - это все туфта, все равно нужна некая ручная работа на более высоком уровне. А мы в этой теме еще этот этап не прошли, мне кажется.
1
|
4 / 4 / 0
Регистрация: 17.01.2021
Сообщений: 41
|
|
31.01.2021, 20:41 | 18 |
Я читал что нельзя считать в некоторых случаях обратное распространение оптимальным вариантом вычисления градиента.Если число выходов в графе больше числа входов то предполагается более предпочтительной форма автоматического дифференцирования с прямым аккумулированием.(в частности в рекуррентных сетях)
1
|
0 / 0 / 0
Регистрация: 16.04.2019
Сообщений: 23
|
|
31.01.2021, 21:28 [ТС] | 19 |
Что именно Вы понимаете под "правильным"? Правильный = платный? Или есть какие-то другие критерии?
Добавлено через 6 минут Не могли бы Вы пояснить - какой более высокий уровень имеется в виду?
0
|
4 / 4 / 0
Регистрация: 17.01.2021
Сообщений: 41
|
|
31.01.2021, 23:40 | 20 |
Надо полагать имелось в виду правильный под задачу.Недавно VTsaregorodtsev упомянул в одном из комментариев Essoin. Алгоритм улучшенной самоорганизующейся растущей нейросети. Если задача кластеризации это "правильный" софт. Но речь также шла и "дружественном" к пользователю софте. Готовые программы под решение каких то задач. Можете посмотреть например "Deductor " .Дедуктор академик студио бесплатная если что и "дружественная"
Добавлено через 1 час 17 минут Этот этап возможно скоро будет пройден- AutoML Zero Добавлено через 6 минут Что Вы думаете о AutoML Zero.?
1
|
31.01.2021, 23:40 | |
31.01.2021, 23:40 | |
Помогаю со студенческими работами здесь
20
Я не могу разобраться как мне правильно подключить исполняемый файл .срр Верстальщик прислал форму авторизации на HTML, не могу разобраться, как ее правильно настроить Не могу разобраться с готовым проектом на github и не могу правильно загрузить его в eclipse Обработка на стороне сервера с большим количеством условий. Как правильно сконструировать? Не могу разобраться с загрузкой данных из файлов,и чтоб в дальнейшем с ними мжно было работать как с массивом,не могу разобраться( Задали работу, не могу разобраться. Используется делфи 10, не могу разобраться, как это сделать Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |