Комментарии 25
Спасибо большое за курс на русском языке
оффтоп, а зачем в подборе весов машинное обучение? есть матаппарат для этого, при этом эксель в данном случае выбирает линейную модель, даже если ставишь полином, и не требует 500 итераций на расчет.
Можно сразу картинки в какой-нибудь GloVe засовывать и получать лейблы: собака, дом, автомобиль, но это сложнее объяснить.
Затем, что это обучение, и приведенная модель хотя бы интерпретируемая, что облегчает понимание.
Линейная модель, разумеется, тоже интерпретируемая.
Можно сразу картинки в какой-нибудь GloVe засовывать и получать лейблы: собака, дом, автомобиль, но это сложнее объяснить.
Может, вы про какой-то другой GloVe, но тот, который я знаю, относится к NLP, а не к computer vision.
Это простой пример обучения. Кстати, примерно тоже самое будет, если заставить человека переводить г. Цельсия в Фаренгейты, со временем он будет делать это интуитивно и с высокой точностью (не проводите таких экспериментов над детьми!)
А область эффективного применения МЛ и ДЛ совершенно другая. И не стоит использовать эти штуки там, где можно аналитическими методами построить модель или аппроксимировать по имеющимся данным и опытом в предметной области.
Пришлось самому разбираться
В итоге пришёл к выводу что промежуточные слои совсем не нужны
Переход от одного слоя к другому можно описать перемножением входного вектора (размерность N) на матрицу коэффицентов (размерность NxM) в итоге получим вектор выходного слоя (размерность M) => IN x M1 x ....x Mk = OUT
пользуясь ассоциативность матриц IN x (M1 x ....x Mk) = OUT, где обозначим M = M1 x ....x Mk, получим IN x M = OUT
Вообще если упростить НС служит для подбора коэффицентов апроксимирующей функции, ну или как то так
В итоге пришёл к выводу что промежуточные слои совсем не нужны
Боюсь, это «революционный» вывод работает ровно до тех пор, пока у скрытых слоев стоит линейная активация.
Нелинейность уже не позволяет «схлопнуть» слои.
и как по мне правильно сделали
ибо ни кто не может толком объяснить смысла этой активации
есть мнение что это из за аппоратного устройства первых нейронов
Вообще если взять ручку с бумагой думаю можно будет придти к формулам что то типа
f (IN x M) = OUT или IN x f(M) = OUT
где f зависит от ф-ии активации, слоёв и тд
Недавно где то читал что от этой активации отказались
От какой? От линейной? Разумеется, десятилетия назад. Причем именно по той причине, которую вы описали.
Сейчас скрытые слои везде идут с нелинейностями семейства ReLU или сигмоид.
Сделать сеть способной аппроксимировать сложные нелинейные функции.
Если убрать нелинейности, то приблизить можно будет только линейную
вовсе нет, достаточно передавать не линейные параметры
скажем не Х, а Х2
как используя не линейную активацию получить на выходе значение зависящее от Х2 или sin(X)?
например чтоб НС определила дальность полёта снаряда от угла наклона пушки?
Используйте вы трижды хитрую активацию, если на вход будете подавать только угол наклона, то на выходе будете получать линейную зависимость
но это колосальные вычисления по сравнению с перемножением матриц
Вообще желательно любое утверждение подтверждать каким нибудь простеньким примером, а то у большенства адептов ИИ, что не спроси на всё один ответ
Нейронная сеть это чёрный ящик и вообще какая то магия
Вообще желательно любое утверждение подтверждать каким нибудь простеньким примером
Весь computer vision вам в пример.
Если хочется чего-то более простого и наглядного, можно сгенерировать какие-нибудь простые не разделимые линейно датасеты и сравнить сети с линейными активациями и с нелинейными (например, что-то похожее легко сделать здесь: playground.tensorflow.org ).
то у большенства адептов ИИ, что не спроси на всё один ответ Нейронная сеть это чёрный ящик и вообще какая то магия
Чаще всего люди, разбирающиеся в машинном обучении, не называют это термином «искусственный интеллект».
как используя не линейную активацию получить на выходе значение зависящее от Х2 или sin(X)?
аппроксимация
вовсе нет, достаточно передавать не линейные параметры
скажем не Х, а Х2
Это ручной feature engineering, тогда как глубокая сеть с нелинейными активациями нужные признаки в теории выучивает сама.
- они не позволяют функции активации нейрона неограниченно расти.
- это позволяет строить нелинейные разделяющие поверхности в пространстве признаков.
По факту, без них у вас не получится решить сколько-нибудь сложную задачу, например, классификатор изображений на кошек и собак.
Чаще всего я встречал перевод Feature как Признак.
По результатам:
- считают термин feature эквивалентным термину measurable property;
- признак = свойство объекта или характеристика явления.
Думаю, что в данном случае слово признак является устоявшимся, а термины могут быть взаимозаменяемы.
А где можно что-то такое же внятное почитать, но не про сеть в один Dense слой, а про то как выбирать слои под данные (по каким критериям) и как правильно готовить сами данные?
Потому что все туториалы говорят "возьмите этот слой, добавьте такую функцию активации и ещё вот этот слой, возьмите вот тот датасет подготовленный на 100500 картинок — и вот вам 95% точности распознавания". А почему именно эти слои, почему такая последовательность, как данные подготовили и т.д. все опускают.
Материалы перерабатываю полностью, поэтому времени занимает прилично, но зато, надеюсь, качество подачи и понимания темы повышается.
Введение в машинное обучение