Re[12]: Почему взлетел Deep Learning?
От: m2l  
Дата: 30.06.22 17:56
Оценка:
Здравствуйте, SkyKnight, Вы писали:

m2l>>А чем их знания могут помочь построить при помощи Keras модель, обучить и пользоваться? Мой поинт именно в этом, что производную никто считать не будет. И это знание — что оно есть, что нету не влияет на способность описать и обучить модель. Или не способность.

SK>Естественно вручную никто не считает. Я потому и предлагаю тебе еще раз ознакомиться с тем, как работает обучение нейронной сети, чтобы ты больше таких вопросов не задавал.
SK>Конекретно про back propagation.

Слушай, вот то у тебя "вручную никто не считает", то:

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

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


m2l>>Я это знаю. Но вопрос тот-же: как знание дифисчисления помогает человеку пользоваться библиотекой с готовым набором оптимизаторов? На каком этапе при работе с датасетом, описанием модели или обучением человек должен им воспользоваться, применительно к чему, как это помогает выбрать функцию активации или число нейронов в слое?

SK>Все зависит от задачи. Но сейчас де-факто стандарт функция активации используется ReLU. Но, если ты строишь RNN, то чаще берут tanh.
SK>Вот просто почитай хотя бы про эти функции активации: https://neurohive.io/ru/osnovy-data-science/activation-functions/

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

m2l>>Вот смотри — по твоим собственным словам производные высчитываться только на этапе обучения. Их кто считает, человек или ML библиотека? И если это библиотека, то как именно знание производных поможет обучить модель быстрее/выше/сильней?

SK>Я опять же не понимаю вопроса. Но знание алгоритма, как работает back propagation, особо не поможет в обучении. Тут больше поможет работа с данными, в общем называется Data Engineering, из которого потом идет feature engineering. Чтобы смочь выбрать действительно нужные данные для обучения сети.

SK>Есть простые датасеты, например, было что-то там с yellow cab, в данных было время посадки, время высадки пассажира, сколько километров проехал, место посадки, место высадки и еще всякое.

SK>Так вот даже на таком просто датасете было понятно, что просто время посадки и время высадки не интересные фичи, а интересная была "продолжительность поездки", которую надо было бы вычислить как разницу этих двух времен. Потому что именно расстояние и время больше всего влияли на цену поездки. Причем фичи "выходной", "не выходной" или "утро", "день", "вечер" и "ночь" не играли особой роли, точнее совсем не играли.

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


Согласен. Такая логика и приводит меня к мысли, что статистика и теория вероятностей важна. А производные и диф.счисление — не очень.
А меня тут пытаются зачем-то убедить, что именно расчет производных нужен для работы с данными и обучения. Но привести пример как это знание можно применить никто, включая тебя, не может.


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

SK>Повторю вопрос. Что у тебя за модель и что она делает? Я пока не совсем представляю себе как модель может тормозить. У тебя там что, картинки, чат-бот или что-то еще?
Конкретно эта — картинки. Насчет тормозить — просто нейронов чуть больше, чем нужно. Сложений/умножений слишком много. Но, заметь, никакого варианта посчитать производные, что бы найти слои, которые можно убрать или снизить размерность, или заменить ядро свертки у тебя нету.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.