Обсуждение статьи "Глубокие нейросети (Часть II). Разработка и выбор предикторов"

 

Опубликована статья Глубокие нейросети (Часть II). Разработка и выбор предикторов:

Во второй статье из серии о глубоких нейросетях рассматриваются трансформация и выбор предикторов в процессе подготовки данных для обучения модели.

Есть множество способов и критериев оценки важности предикторов. Некоторые из них мы уже рассматривали в предыдущих статьях. Поскольку в этой статье мы сделали упор на визуализацию, рассмотрим один визуальный и (для сравнения) один аналитический метод оценки важности предикторов.

FSelect 2

Рис.29. Важность предикторов в поднаборе train нормализованных наборов

Автор: Vladimir Perervenko

 

Интересная вещь:

Обрезка минимального значения — это простой в использовании алгоритм, при котором на каждом шаге отключаются веса с наименьшим абсолютным значением. Этот алгоритм требует ретрансляции сети практически на каждом шаге и дает субоптимальные результаты.

Я правильно понимаю порядок работы этой функции?:

1) Полностью обучить изначальную сеть 12-8-5-1

2) найти связь с минимальным весом и удалить вход

3) снова обучить сеть 11-8-5-1  без удаленного входа

И т.д. несколько десятков циклов переобучения. Пока не останется сеть 6-2-1-1.

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

Каковы преимущества такого подхода?

 
elibrarius:

Интересная вещь:

Я правильно понимаю порядок работы этой функции?:

1) Полностью обучить изначальную сеть 12-8-5-1

2) найти связь с минимальным весом и удалить вход

3) снова обучить сеть сеть 11-8-5-1  без удаленного входа

И т.д. несколько десятков циклов переобучения. Пока не останется сеть 6-2-1-1.

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

Каковы преимущества такого подхода?

1. Алгоритм работает именно так. С одним исключением : отсеиваются нейроны во всех скрытых слоях.

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

Преимущества? Убираем все лишнее, что порождает ложную классификацию. Так утверждают разработчики.

Просто один из способов выбора важных предикторов

Удачи

 
Vladimir Perervenko:

1. Алгоритм работает именно так. С одним исключением : отсеиваются нейроны во всех скрытых слоях.

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

Преимущества? Убираем все лишнее, что порождает ложную классификацию. Так утверждают разработчики.

Просто один из способов выбора важных предикторов

Удачи

1) Если связи от входов к внутр. нейронам отсутствуют, то и сами входы можно отключить.

2) Меня смущает многократно превышающие затраты времени, чем если просто обучить полную модель по п.1 Если результат тот же, то зачем тратить столько времени?

Могу предположить, что отсеянные предикторы будут игнорироваться в будущем при переобучении/дообучении и экономия времени будет именно тогда. Но ведь и важность предикторов со временем может поменяться.

Меня этот трюк заинтересовал, т.к. тоже начал делать его, но бросил, поняв сколько времени на него потребуется.

Возможно отсеивающие циклы допускают бОльшую ошибку и меньше эпох переобучения, чем окончательное обучение.


Интересно, а по какой логике отсеиваются скрытые нейроны? На каждый ведь идет множество входных связей. По минимальной сумме входных весов? Или по минимальной сумме выходных весов? Или общая сумма?

 
elibrarius:

1) Если связи от входов к внутр. нейронам отсутствуют, то и сами входы можно отключить.

2) Меня смущает многократно превышающие затраты времени, чем если просто обучить полную модель по п.1 Если результат тот же, то зачем тратить столько времени?

Могу предположить, что отсеянные предикторы будут игнорироваться в будущем при переобучении/дообучении и экономия времени будет именно тогда. Но ведь и важность предикторов со временем может поменяться.

Меня этот трюк заинтересовал, т.к. тоже начал делать его, но бросил, поняв сколько времени на него потребуется.

Возможно отсеивающие циклы допускают бОльшую ошибку и меньше эпох переобучения, чем окончательное обучение.


Интересно, а по какой логике отсеиваются скрытые нейроны? На каждый ведь идет множество входных связей. По минимальной сумме входных весов? Или по минимальной сумме выходных весов? Или общая сумма?

Посмотрите пакет и описание функции. Я не разбирался глубоко. Но в нескольких моделях (например H2O) именно так определяют важность предикторов. Я просто проверил и мне не показался этот способ надежным.

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

Это единственно правильный путь. ИМХО

Удачи

Удачи

 
Vladimir Perervenko:

Посмотрите пакет и описание функции. Я не разбирался глубоко. Но в нескольких моделях (например H2O) именно так определяют важность предикторов. Я просто проверил и мне не показался этот способ надежным.

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

Это единственно правильный путь. ИМХО

Удачи

Удачи

Спасибо!
 

Не лучше ли данные о часе и дне вводить в НС не одним предиктором, а отдельными по числу часов и дней?

Если одним, то вес/значимость понедельника (1) и вторника (2) будет отличаться на 100%, а четверга (4) и пятницы(5) на 20%.  С часами 1,2 и 22,23 еще сильнее отличие. А переход от 5 к 1  или 23 к 1 - вообще будет огромным скачком в весе.

Т.е. будут искажения в значимости дней и часов, если они представлены одним предиктором.

5 и 24 лишних предикторов - многовато. Но т.к. последовательность дней и часов циклична, то их можно перевести в угол на окружности и поступить по аналогии с обычными углами: "Разумнее выглядит подача в качестве входных данных синуса и косинуса этого угла." Т.е. будет по 2 предиктора на часы и на дни. Идея взята отсюда http://megaobuchalka.ru/9/5905.html
 
elibrarius:

Не лучше ли данные о часе и дне вводить в НС не одним предиктором, а отдельными по числу часов и дней?

Если одним, то вес/значимость понедельника (1) и вторника (2) будет отличаться на 100%, а четверга (4) и пятницы(5) на 20%.  С часами 1,2 и 22,23 еще сильнее отличие. А переход от 5 к 1  или 23 к 1 - вообще будет огромным скачком в весе.

Т.е. будут искажения в значимости дней и часов, если они представлены одним предиктором.

5 и 24 лишних предикторов - многовато. Но т.к. последовательность дней и часов циклична, то их можно перевести в угол на окружности и поступить по аналогии с обычными углами: "Разумнее выглядит подача в качестве входных данных синуса и косинуса этого угла." Т.е. будет по 2 предиктора на часы и на дни. Идея взята отсюда http://megaobuchalka.ru/9/5905.html

Час суток и день(недели, месяца, года) являются номинальными переменными, не числовыми. Можно говорить только о том упорядоченны они или нет. Поэтому за предложение спасибо, но не принимается. 

Использовать эти переменные как числовые ? Можно экспериментировать, но я в эту сторону не смотрю. Если у Вас есть какие то результаты, поделитесь.

Удачи

 
Прочел статью, в первой части много преобразований предикторов, это конечно познавательно, но хотелось бы увидеть две модели с преобразованием и без, что бы оценить эффективность этих всех преобразований. Кроме того, в чем суть стремления к нормальному распределению?
 

Обсуждение  и вопросы по коду можно можно сделать в ветке 

Удачи

 
Sir,I try to run your R code BUT  the R package "funModeling" has not the "bayesian_plot()" funtion,why? Is it the package Version is not right?
bayesian_plot()

why?

fervently hope your  Answer!

Причина обращения: