Модератор
|
||||||
1 | ||||||
Обработка данных с использованием нейронной сети?12.12.2020, 18:45. Показов 2315. Ответов 25
Метки нет (Все метки)
Всем привет,
При боработке моих данных я использовал нейронную сеть с 2-6-1 (2 входящие нейроны, 6 скрытых нейронов, 1 выходящий нейрон). Но не знаю как выбрать функции активации для получения хорших результатов ! Я программировал на языке Python с помощью библиотеки Keras, это мои коды:
Это мои результаты: Код
Accuracy: 0.00 [1402.37, 5.7497] => 1.0043 (expected 1.6435) [1402.46, 6.4661] => 1.0043 (expected 0.9520) [1402.55, 7.3768] => 1.0043 (expected 0.9508) [1402.66, 8.2583] => 1.0043 (expected 1.3669) [1402.78, 9.1954] => 1.0043 (expected 0.9791) [1402.91, 10.1366] => 1.0043 (expected 0.9775) [1402.39, 5.8727] => 1.0043 (expected 0.9725) [1402.48, 6.7135] => 1.0043 (expected 1.1448) [1402.58, 7.6265] => 1.0043 (expected 1.4263) [1402.69, 8.4922] => 1.0043 (expected 0.9590) Как лучший вариант для получения результатов близких к входящим данным (в файле)? Хотел мнения ваши. Спасибо огромное !
0
|
12.12.2020, 18:45 | |
Ответы с готовыми решениями:
25
Нормализация данных для нейронной сети Обработка данных с использованием нейронной сети Обработка базы данных Титаника для подготовки к реализации нейронной сети Обработка звука для нейронной сети |
672 / 546 / 74
Регистрация: 20.09.2014
Сообщений: 3,550
|
|
12.12.2020, 19:09 | 2 |
А почему вы думаете, что функция активации - это очень важно?
Лучше размер батча увеличьте, а количество эпох уменьшите. Сейчас код весь посмотрю, у вас нейронка не улучшения требует, а воскрешения из мертвых))). Добавлено через 6 минут Аа, забыл свою первую мысль, которая возникла при прочтении поста... Собственно нормировать данные вы не хотите? Это более важно, чем функция активации.
1
|
672 / 546 / 74
Регистрация: 20.09.2014
Сообщений: 3,550
|
||||||
12.12.2020, 19:25 | 4 | |||||
Неожиданный вопрос. Вы как этот код получили?
Нормализация - это приведение входных данных к диапазону [0.0, 1.0]. Можно просто найти максимум и минимум каждого столбца и отмасштабировать все числа. Дёрнул из сети какой-то стандартный код:
1
|
Модератор
|
|
12.12.2020, 20:20 [ТС] | 5 |
Привет, я иностранец. По-Русски немного понимаю. Хочу говорить, что я посмотрел нескооько кодов в интернете и внедрил их в моем случае. Но я не знал, что данные надо нормировать перед использованием нейронной сети до того как встречить ваши мнения выше. Извините, я инженер по механике ! И эти знания совсем новые для меня. Мне нужна обработка данных, полученных от экспериментов.
Я попробую ваши коды чтобы нормировать свои данные. Может быть возникать несколько проблем ещё, надеюсь, что вы продолжите помочь мне. Спасибо вам.
0
|
3678 / 2589 / 719
Регистрация: 02.08.2011
Сообщений: 6,963
|
||||||
12.12.2020, 20:25 | 6 | |||||
Volga_, вероятно, вам нужен BatchNormalization.
Добавлено через 2 минуты Volga_, guess default parameters work, but u, for sure, can play with them.
1
|
672 / 546 / 74
Регистрация: 20.09.2014
Сообщений: 3,550
|
|
12.12.2020, 20:27 | 7 |
Нее, я вас прекрасно понимаю, даже не заподозрил на иностранца. Проблема в технической части. Удачи!
1
|
Модератор
|
||||||
12.12.2020, 20:34 [ТС] | 8 | |||||
Я поиграл их по вашим мнениям, кажется, они больше хорошо, как:
0
|
672 / 546 / 74
Регистрация: 20.09.2014
Сообщений: 3,550
|
||||||
12.12.2020, 21:06 | 9 | |||||
Точность (accuracy) измеряют не на тех данных, на которых обучались, а на тестовых.
0
|
3678 / 2589 / 719
Регистрация: 02.08.2011
Сообщений: 6,963
|
|
12.12.2020, 21:15 | 10 |
Mikhaylo, нет, это API так работает, ты ему даешь на вход X, и даешь правильные ответы, а он тебе сам посчитает точность.
1
|
Модератор
|
||||||
12.12.2020, 21:15 [ТС] | 11 | |||||
0
|
3678 / 2589 / 719
Регистрация: 02.08.2011
Сообщений: 6,963
|
|
12.12.2020, 21:19 | 12 |
Если verbose проставить в 1, то видно, что в каждом batch-е у него accuracy в 0.
Это значит, что модель никуда не годится, если даже на тех данных, на которых она тренировалась, она выдает нулевую точность. Вероятно проблема в том, что модель буквально сравнивает floating-point данные, и один в один они никогда не совпадают. Хотя близки. Отсюда и нулевая точность. Но видно что cost function по эпохам уменьшается. Как сделать правильно - сходу не скажу. Скорее всего, что проблема именно в сравнении чисел с плавающей запятой.
0
|
672 / 546 / 74
Регистрация: 20.09.2014
Сообщений: 3,550
|
|
12.12.2020, 21:22 | 13 |
Тогда делить выборку (X, y) на обучающую и тестовую. И все-таки хватит переобучать модель: число эпох 10 хватит, батч размером 64.
0
|
3678 / 2589 / 719
Регистрация: 02.08.2011
Сообщений: 6,963
|
|
12.12.2020, 21:42 | 14 |
Volga_, 10000 epochs of your code:
Код
Accuracy: 0.00 [1402.37, 5.7497] => 1.0952 (expected 1.6435) [1402.46, 6.4661] => 1.0772 (expected 0.9520) [1402.55, 7.3768] => 1.0689 (expected 0.9508) [1402.66, 8.2583] => 1.0696 (expected 1.3669) [1402.78, 9.1954] => 1.0770 (expected 0.9791) [1402.91, 10.1366] => 1.0887 (expected 0.9775) [1402.39, 5.8727] => 1.0912 (expected 0.9725) [1402.48, 6.7135] => 1.0738 (expected 1.1448) [1402.58, 7.6265] => 1.0684 (expected 1.4263) [1402.69, 8.4922] => 1.0709 (expected 0.9590) Пробуй, другие архитектуры, можно попробовать добавить еще один слой. Обычно можно не особо задумываясь увеличивать число нейронов на первом скрытом слое, и сеть сама разберется. Я бы попробовал добавить еще один слой, так как видно на выходе даже при 10000 эпохах выдается всегда ~1.
1
|
Модератор
|
||||||
12.12.2020, 21:48 [ТС] | 15 | |||||
Я даже использовал этот код:
Код
Accuracy: 0.00000000000000000000
0
|
3678 / 2589 / 719
Регистрация: 02.08.2011
Сообщений: 6,963
|
|
12.12.2020, 22:00 | 16 |
I am gonna play with your model but later. Will try to get right answer.
Is FPU comparison a problem or not? Try to use other metric while training. Probably accuracy in this case is not right metric. Good luck! Добавлено через 3 минуты Я бы попробовал: 1. Добавить еще один слой. Модель недостаточно выразительна: Код
[1402.58, 7.6265] => 1.0684 (expected 1.4263) Даже на 10000 тысяч эпох сеть не выдает ни разу значение больше 1.1 2. Изменить метрику. 3. Возможно недостаточно данных. Добавлено через 6 минут If to play seriously, you should consider whether your y data distribution can be modelled by current network configuration or not.But i am not good at these
1
|
1581 / 1504 / 251
Регистрация: 19.02.2010
Сообщений: 4,061
|
|
12.12.2020, 22:28 | 18 |
Люто, неистово аплодирую такой точке зрения
Народу ведь совершенно не надо знать то, что ЛеКун доказал ещё в 1991ом. Пусть сами себе создают трудности (в виде кривых нормализаций, кривых нелинейностей) и потом их героически преодолевают всякими батч-нормами и Адамами
1
|
672 / 546 / 74
Регистрация: 20.09.2014
Сообщений: 3,550
|
|
13.12.2020, 13:59 | 20 |
Вы опять про тангенсоиды свои и [-1.0, +1.0]?
Тут такой задачи не стоит.) По нормализации датасетов можно почитать достаточно исчерпывающую недавнюю статью на Хабре. https://habr.com/ru/post/527334/ Добавлено через 3 минуты Volga_, вы там определитесь у вас задача регрессии или задача классификации, а потом уже метрику выбирайте. https://ru.gadget-info.com/dif... sification
0
|
13.12.2020, 13:59 | |
13.12.2020, 13:59 | |
Помогаю со студенческими работами здесь
20
Распознавание образов с использованием логической нейронной сети Распознавание цифры по картинке с использованием нейронной сети Решение задачи регрессии с использованием рекуррентной нейронной сети Набор данных для нейронной сети Представление данных и модель нейронной сети для интересной задачи Как преобразовать картинку чтобы получить адекватный вектор входных данных для нейронной сети? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |