Forwarded from asisakov
ReLU, GELU, SiLU и ELU
Несколько лет назад на курсах нам рассказывали только про несколько функций активации: sigmoid, tanh, ReLU. Было круто, когда кто-то дополнительно ещё рассказывал про Leaky ReLU. И всего этих четырёх функций активации было достаточно, чтобы шатать сеточки.
Буквально несколько дней назад я слушал разбор статьи, где говорилось о том, что применение ReLU позволяет увеличить скорость инференса с небольшой потерей качества. Сравнение проводилось с функциями активации: GELU, SiLU. Я понял, что немного отстал от современных технологий в DL и решил погуглить и поделиться с вами.
Начнем с функции ReLU (Rectified Linear Unit). Эта функция активации имеет форму f(x) = max(0, x), что делает ее чрезвычайно эффективной для операций с большим количеством признаков, поскольку она увеличивает нелинейность модели без затрат на вычислительные ресурсы и без риска исчезновения градиента. Одним из главных недостатков ReLU является проблема «мертвых нейронов», когда нейроны перестают активироваться и вносить вклад в обучение сети из-за отрицательных значений на входе.
GELU (Gaussian Error Linear Unit), впервые представленная в 2016 году, стала более гладкой альтернативой ReLU. Функция GELU умножает входное значение на вероятность того, что значение будет активировано, что делает ее подходящей для использования в трансформерах и сетях с self-attention. Такая структура приводит к более динамичной адаптации нейронов к разным фазам обучения, позволяя достигать лучших результатов на сложных задачах.
Следующая в нашем списке — SiLU (Sigmoid Linear Unit). Эта функция активации представляет собой произведение входа на сигмоидную функцию от этого же входа, f(x) = x * σ(x). SiLU показала хорошие результаты в экспериментах по глубокому обучению, часто превосходя ReLU по разнообразным метрикам.
ELU (Exponential Linear Unit) добавляет еще одну интересную возможность в арсенал функций активации. В отличие от ReLU, ELU вводит отрицательные значения для отрицательных входов, что помогает сохранять более богатую информацию о распределении входных данных. Функция имеет форму f(x) = x, если x > 0, и f(x) = α(exp(x) - 1), если x ≤ 0, где α — параметр, обычно равный единице. Это улучшает скорость сходимости модели.
Вкратце: эти функции активации позволяют уменьшить вероятность возникновения проблемы размывания градиентов, но при этом тратят чуть больше компьюта на вычисления.
Пояснение с кодом есть тут
Дополнительное чтиво: 1, 2
#dl #code
Несколько лет назад на курсах нам рассказывали только про несколько функций активации: sigmoid, tanh, ReLU. Было круто, когда кто-то дополнительно ещё рассказывал про Leaky ReLU. И всего этих четырёх функций активации было достаточно, чтобы шатать сеточки.
Буквально несколько дней назад я слушал разбор статьи, где говорилось о том, что применение ReLU позволяет увеличить скорость инференса с небольшой потерей качества. Сравнение проводилось с функциями активации: GELU, SiLU. Я понял, что немного отстал от современных технологий в DL и решил погуглить и поделиться с вами.
Начнем с функции ReLU (Rectified Linear Unit). Эта функция активации имеет форму f(x) = max(0, x), что делает ее чрезвычайно эффективной для операций с большим количеством признаков, поскольку она увеличивает нелинейность модели без затрат на вычислительные ресурсы и без риска исчезновения градиента. Одним из главных недостатков ReLU является проблема «мертвых нейронов», когда нейроны перестают активироваться и вносить вклад в обучение сети из-за отрицательных значений на входе.
GELU (Gaussian Error Linear Unit), впервые представленная в 2016 году, стала более гладкой альтернативой ReLU. Функция GELU умножает входное значение на вероятность того, что значение будет активировано, что делает ее подходящей для использования в трансформерах и сетях с self-attention. Такая структура приводит к более динамичной адаптации нейронов к разным фазам обучения, позволяя достигать лучших результатов на сложных задачах.
Следующая в нашем списке — SiLU (Sigmoid Linear Unit). Эта функция активации представляет собой произведение входа на сигмоидную функцию от этого же входа, f(x) = x * σ(x). SiLU показала хорошие результаты в экспериментах по глубокому обучению, часто превосходя ReLU по разнообразным метрикам.
ELU (Exponential Linear Unit) добавляет еще одну интересную возможность в арсенал функций активации. В отличие от ReLU, ELU вводит отрицательные значения для отрицательных входов, что помогает сохранять более богатую информацию о распределении входных данных. Функция имеет форму f(x) = x, если x > 0, и f(x) = α(exp(x) - 1), если x ≤ 0, где α — параметр, обычно равный единице. Это улучшает скорость сходимости модели.
Вкратце: эти функции активации позволяют уменьшить вероятность возникновения проблемы размывания градиентов, но при этом тратят чуть больше компьюта на вычисления.
Пояснение с кодом есть тут
Дополнительное чтиво: 1, 2
#dl #code
❤1
Forwarded from asisakov
Советы от грандмастера
В отложенных для просмотра вкладок завалялось видео с выступлением Стаса Семенова. Если кто не знает, то это ex-top-1 kaggle grandmaster, который сейчас работает квантом.
В видео он раздаёт советы с рекомендациями, как выбить лучший скор модели. Поделюсь тем, что меня зацепило:
1. Преобразование выхода модели функциями, смещающими распределение предсказаний в более уверенные предикты
2. Отбор только k-ых наблюдений во временных рядах, где соседние точки имеют очень близкие значения (например в HFT)
3. Расчёт критериев, показывающих похожесть 2 признаков
Если вам есть что докинуть, пишите в коменты.
P.S. Кстати, есть конспект от Дэна
В отложенных для просмотра вкладок завалялось видео с выступлением Стаса Семенова. Если кто не знает, то это ex-top-1 kaggle grandmaster, который сейчас работает квантом.
В видео он раздаёт советы с рекомендациями, как выбить лучший скор модели. Поделюсь тем, что меня зацепило:
1. Преобразование выхода модели функциями, смещающими распределение предсказаний в более уверенные предикты
2. Отбор только k-ых наблюдений во временных рядах, где соседние точки имеют очень близкие значения (например в HFT)
3. Расчёт критериев, показывающих похожесть 2 признаков
Если вам есть что докинуть, пишите в коменты.
P.S. Кстати, есть конспект от Дэна
YouTube
Tips and Tricks for Machine Learning | by Stanislav Semenov | Kaggle Days Paris
Stanislav Semenov
"Tips and tricks for Machine Learning"
Kaggle Days Paris was held in January 2019 and gathered over 200 participants to meet, learn and code with Kaggle Grandmasters, and compete in our traditional offline competition.
This edition is…
"Tips and tricks for Machine Learning"
Kaggle Days Paris was held in January 2019 and gathered over 200 participants to meet, learn and code with Kaggle Grandmasters, and compete in our traditional offline competition.
This edition is…
mosteller_fifty_challenging_problems_in_statistics.pdf
4.9 MB
#probability
Советую порешать задачки по теорверу ) Классная книжка, читал её школьником и благодаря ей начал программировать (на qbasic).
Советую порешать задачки по теорверу ) Классная книжка, читал её школьником и благодаря ей начал программировать (на qbasic).
✍1
#ml #physics
МЛ в системах с (частично) известной физикой.
https://www.youtube.com/watch?v=JoFW2uSd3Uo
МЛ в системах с (частично) известной физикой.
https://www.youtube.com/watch?v=JoFW2uSd3Uo
YouTube
Physics Informed Machine Learning: High Level Overview of AI and ML in Science and Engineering
This video describes how to incorporate physics into the machine learning process. The process of machine learning is broken down into five stages: (1) formulating a problem to model, (2) collecting and curating training data to inform the model, (3) choosing…
#fun #music
Немного хорошего офисного настроения всем в ленту )
https://www.youtube.com/shorts/DuTOTTW-pfg
Немного хорошего офисного настроения всем в ленту )
https://www.youtube.com/shorts/DuTOTTW-pfg
YouTube
Brother Louie Dance
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
#simulation #optimization
Интересная идея о том, как ускорять симуляции с помощью ML и тем самым помогать быстрой оптимизации. Действительно, почему бы и и нет! Сначала собираем входные параметры системы +итоги симуляций, а дальше симуляцию пробуем заменять быстрой ML моделью.
https://www.youtube.com/watch?v=ohGeGfUCV_A
Интересная идея о том, как ускорять симуляции с помощью ML и тем самым помогать быстрой оптимизации. Действительно, почему бы и и нет! Сначала собираем входные параметры системы +итоги симуляций, а дальше симуляцию пробуем заменять быстрой ML моделью.
https://www.youtube.com/watch?v=ohGeGfUCV_A
YouTube
ML for Optimization Problems | Qingchen Wang | Kaggle Days
Kaggle Days China edition was held on October 19-20 at Damei Center, Beijing.
More than 400 data scientists and enthusiasts gathered to learn, make friends, and compete in a full-day offline competition.
Kaggle Days is produced by LogicAI and Kaggle.
About…
More than 400 data scientists and enthusiasts gathered to learn, make friends, and compete in a full-day offline competition.
Kaggle Days is produced by LogicAI and Kaggle.
About…
👍1
#c #с++ #bufferoverflow #security
Отчёт ONCD подчёркивает, что около 70 % всех уязвимостей в системе безопасности, выявленных инженерами Microsoft в 2019 году и Google в 2020 году, были связаны именно с нарушениями безопасности памяти. Эта статистика ясно демонстрирует необходимость переосмысления подходов к разработке ПО в контексте нынешней стратегии кибербезопасности США.
В отчёте не только указывается на проблемы с C и C++, но и предлагается ряд альтернатив — языков программирования, признанных «безопасными для памяти». Среди рекомендованных Агентством национальной безопасности (NSA) языков находятся: Rust, Go, C#, Java, Swift, JavaScript и Ruby. Эти языки включают в себя механизмы, предотвращающие распространённые типы атак на память, тем самым повышая безопасность разрабатываемых систем.
https://3dnews.ru/1100993/beliy-dom-rekomendoval-otkazatsya-ot-c-i-c-v-polzu-bezopasnih-yazikov-programmirovaniya
Отчёт ONCD подчёркивает, что около 70 % всех уязвимостей в системе безопасности, выявленных инженерами Microsoft в 2019 году и Google в 2020 году, были связаны именно с нарушениями безопасности памяти. Эта статистика ясно демонстрирует необходимость переосмысления подходов к разработке ПО в контексте нынешней стратегии кибербезопасности США.
В отчёте не только указывается на проблемы с C и C++, но и предлагается ряд альтернатив — языков программирования, признанных «безопасными для памяти». Среди рекомендованных Агентством национальной безопасности (NSA) языков находятся: Rust, Go, C#, Java, Swift, JavaScript и Ruby. Эти языки включают в себя механизмы, предотвращающие распространённые типы атак на память, тем самым повышая безопасность разрабатываемых систем.
https://3dnews.ru/1100993/beliy-dom-rekomendoval-otkazatsya-ot-c-i-c-v-polzu-bezopasnih-yazikov-programmirovaniya
3DNews - Daily Digital Digest
Белый дом рекомендовал отказаться от C и C++ в пользу безопасных языков программирования
Офис национального директора по кибербезопасности (ONCD) Белого дома США призвал разработчиков отказаться от использования языков программирования C и C++ в разработке критически важного ПО. Этот совет основывается на опасениях, связанных с безопасностью…
#music #spiritualfront
I’ve seen a thousand mornings,
I’ve lived a million nights.
I’ve walked within the shadows
Beneath the city lights.
I‘ve fought a thousand battles,
I’ve been in a hundred wars.
And I will always live on
Behind closed doors.
https://www.youtube.com/watch?v=JQa6jjR7qoI
I’ve seen a thousand mornings,
I’ve lived a million nights.
I’ve walked within the shadows
Beneath the city lights.
I‘ve fought a thousand battles,
I’ve been in a hundred wars.
And I will always live on
Behind closed doors.
https://www.youtube.com/watch?v=JQa6jjR7qoI
YouTube
When the Sun Has Ceased to Shine
Provided to YouTube by Trisol
When the Sun Has Ceased to Shine · Spiritual Front
Namenlos
℗ Trisol Music Group
Released on: 2008-01-25
Composer: Thomas Rainer
Auto-generated by YouTube.
When the Sun Has Ceased to Shine · Spiritual Front
Namenlos
℗ Trisol Music Group
Released on: 2008-01-25
Composer: Thomas Rainer
Auto-generated by YouTube.
#featureselection #diogenes
в модуле filters Диогена уже 3k строчек кода. хотя вроде идеи основные такие простые и элегантные.
в модуле filters Диогена уже 3k строчек кода. хотя вроде идеи основные такие простые и элегантные.
#featureengineering #featureselection #diogenes
2024-03-02 05:39:17,484 - INFO - screen_predictors-line:1524 - Starting work with full_npermutations=10, min_nonzero_confidence=0.99000, max_failed=1
2024-03-02 05:39:49,214 - INFO - fit-line:2750 - MRMR selected 4 out of 5 features: [{'name': 'a', 'indices': (0,), 'gain': 0.33220730396336595, 'confidence': 1.0}, {'name': 'b', 'indices': (1,), 'gain': 0.5405325314273686, 'confidence': 1.0}, {'name': 'c', 'indices': (2,), 'gain': 0.20641517193369197, 'confidence': 1.0}, {'name': 'd', 'indices': (3,), 'gain': 0.07414164383695354, 'confidence': 1.0}]
2024-03-02 05:40:34,762 - INFO - fit-line:2983 - mul(log(c),sin(d)) is recommended to use as a new feature!
2024-03-02 05:42:12,619 - INFO - fit-line:2983 - mul(squared(a),reciproc(b)) is recommended to use as a new feature!
time: 3min 7s (started: 2024-03-02 05:39:05 +03:00)
Как тебе такое, Франциска Хорн? )
n =100_000
a = np.random.rand(n)
b = np.random.rand(n)
c = np.random.rand(n)
d = np.random.rand(n)
e = np.random.rand(n)
f = np.random.rand(n)
y=a**2/b+f/5+np.log(c)*np.sin(d)
df = pd.DataFrame(
{
"a": a,
"b": b,
"c": c,
"d": d,
"e": e,
}
)
from mlframe.feature_selection.filters import MRMR
fs=MRMR(full_npermutations=10,baseline_npermutations=20,verbose=1,n_workers=1,parallel_kwargs=dict(temp_folder=r"R:\Temp"),)
fs.fit(X=df,y=y)
2024-03-02 05:39:17,484 - INFO - screen_predictors-line:1524 - Starting work with full_npermutations=10, min_nonzero_confidence=0.99000, max_failed=1
2024-03-02 05:39:49,214 - INFO - fit-line:2750 - MRMR selected 4 out of 5 features: [{'name': 'a', 'indices': (0,), 'gain': 0.33220730396336595, 'confidence': 1.0}, {'name': 'b', 'indices': (1,), 'gain': 0.5405325314273686, 'confidence': 1.0}, {'name': 'c', 'indices': (2,), 'gain': 0.20641517193369197, 'confidence': 1.0}, {'name': 'd', 'indices': (3,), 'gain': 0.07414164383695354, 'confidence': 1.0}]
2024-03-02 05:40:34,762 - INFO - fit-line:2983 - mul(log(c),sin(d)) is recommended to use as a new feature!
2024-03-02 05:42:12,619 - INFO - fit-line:2983 - mul(squared(a),reciproc(b)) is recommended to use as a new feature!
time: 3min 7s (started: 2024-03-02 05:39:05 +03:00)
Как тебе такое, Франциска Хорн? )
🔥3
#featureengineering #featureselection #autofeat
time: 5min 23s (started: 2024-03-02 06:07:07 +03:00)
Эмм.. А можно мне другой отборщик признаков? )
from autofeat import AutoFeatRegressor
model = AutoFeatRegressor(transformations = ('1/', 'exp', 'log', 'sin', 'sqrt', '^2', '^3'),featsel_runs=15)
new_df = model.fit_transform(df, y)
time: 5min 23s (started: 2024-03-02 06:07:07 +03:00)
Эмм.. А можно мне другой отборщик признаков? )
#reading
Читаю книжку, ловлю себя на мысли, что сноски внизу страницы должны кануть в небытиё (к чему эта саккада через всю страницу вниз-вверх? это сделано что, для моего мнимого удобства?). Как и чёртовы благодарности жёнам, детям, собакам автора. Равно как и "отзывы читателей", к примеру, в книжке Кохави, или как его, по А/Б тестам. Книжка была дрянной, а прекрасные "отзывы читателей" он расписал страницах на 5, не меньше.
Читаю книжку, ловлю себя на мысли, что сноски внизу страницы должны кануть в небытиё (к чему эта саккада через всю страницу вниз-вверх? это сделано что, для моего мнимого удобства?). Как и чёртовы благодарности жёнам, детям, собакам автора. Равно как и "отзывы читателей", к примеру, в книжке Кохави, или как его, по А/Б тестам. Книжка была дрянной, а прекрасные "отзывы читателей" он расписал страницах на 5, не меньше.
👍1👎1