Основные проекты, в которых вам предстоит работать, написаны на C++/Python, поэтому если вы имеет богатый опыт бэкенд-разработки и готовы сменить язык программирования, то вполне можете подавать заявку на программу.
Мы бы хотели, чтобы у кандидата был солидный опыт либо с C++, либо с python.
Предполагается, что кандидат выберет какую-нибудь статью с последних топовых конференций (NIPS, ICML, ICLR, CVPR, ACL, RecSys и других) и сделает небольшой разбор: какая была постановка задачи, почему это важно, какое новшество в алгоритмах предложили авторы и какие результаты получили.
С точки зрения теоретических знаний мы бы хотели, чтобы кандидат имел общее понимание базовых принципов машинного обучения и математической статистики.
После окончания программы вы продолжите работу в качестве ML-инженера либо в том же подразделении Яндекса, либо выберите другой интересный для вас проект.
Никто по сути не обязан кому-либо. Даже в вычислительной и теоретической нейробиологии есть различные уровни абстракции — можно моделировать только потенциал нейрона (например LIF-нейроны), можно моделировать с точностью до нескольких ионных каналов (например нейроны типа оригинального Ходжкина-Хаксли), а можно еще детально моделировать процессы, протекающие в синаптической щели, или учитывать десятки типов ионных каналов. У каждого уровня абстракции есть свои цели. И конечно «отрицательный вес» есть в рамках реальных синапсов — en.wikipedia.org/wiki/Inhibitory_postsynaptic_potential. И отдельно указываю, что это конечно не отрицательный выход пресинаптического нейрона, а именно понижающий вклад спайка на пресинаптическом нейроне в мембранный потенциал постсинаптического.
Если же говорить о прикладной области, то разработчики искусственных нейронных сетей скорее вдохновляются и пытаются подсмотреть какие-то вещи в реальном мозге, чтобы эффективно решать широкий спектр задач. Это не означает, что они должны всецело следовать механизмам, которые мы наблюдаем в природе, особенно учитывая то, что наше знание данных механизмов оставляет желать лучшего.
И в целом это абсолютно неконкретный и пространный разговор, который не имеет особого смысла в контексте рассматриваемой лекции.
Это все философия.
А по сути «отрицательные входы» напрямую есть в мозге — нейромедиаторы, которые гиперполяризуют мембрану постсинаптического нейрона при взаимодействии с рецепторами постсинапса. В состоянии покоя потенциал на мембране отрицательный — примерно -65мВ (для разных нейронов по разному). При деполяризации до некоторого порогового потенциала (примерно -45мВ)тначинается лавинообразная активация потенциал-зависимых натриевых каналов, которые пртводят к дальнейшей деполяризации и соответственно генерации спайка на уровне примерно 30 мВ. Все что я описал — очень примерно и бывает несколько по разному для разных типов нейронов и разных состояний. Все это Вы можете прочитать в любом учебнике по нейрофизиологии.
Также призываю Вас отличать технические задачи обработки данных и нейробиологию. Это две разных, хоть и в определенной степени связанных области.
Я Вам изначально задавал вопрос — про какой нейрон Вы говорите? Про модельный или биологический? В лекции идет разговор исключительно про искусственные нейроны сети и там нейроны могут выдавать все что угодно.
Вообще-то может. Возьмем к примеру какое-то многомерное пространство и два линейно разделимых множества точек в нем (условно будем считать, что это точки из двух разных классов). Если мы возьмем один нейрон со следующей функцией активации (будем считать, что bias вход включен в суммирование по весам):
Таким образом взвешенная сумма по признакам формирует разделяющую гиперплоскость. Собственно именно об этом и говорит лектор. Если Вы имеете ввиду, что нейрон не может одновременно давать сразу два значения, то в общем случае Вы правы, хотя есть модели и многомерных нейронов, но они практически не применяются.
Я думаю, что многим просто лениво Вам написать ответ, но я отвечу кратко.
Во-первых, какой нейрон Вы имеете ввиду? Если модельный, то они могут выдавать все что угодно, в зависимости от своей модели (как 0 и 1, так и -1 и 1, а еще вещественное число распределенное по самым различным законам распределения на интервалах (-1;1) или (0;1) или еще миллион других вещей). Если же биологический, то в отношении него можно говорить о выдаче 0 или 1 в аксоне только в переносном смысле.
Во-вторых, как в модели, так и в реальном мозге, конечно есть и активирующие, и ингибирующие связи.
Для целочисленных массивов хорошо реализованная LSD в общем случае быстрее, чем MSD (не смотря на то, что теоретически должно быть наоборот). При этом для 32-битных чисел можно сделать LSD вариант, который обгоняет quiсksort уже при 60-70 элементах (я слышал и про более ранний обгон (30-40), но никогда не видел подобный код — там видимо хорошо проработанные SSE оптимизации используются).
И простите за оффтоп, но я просмотрел Ваш сайт про сортировки и там как раз в разделе про radix sort ошибка:
«Кроме того, MSD, в отличие от LSD, является устойчивым алгоритмом.» LSD безусловно является устойчивым алгоритмом, а вот как раз с MSD все не так просто. Наиболее быстрая in-place реализация не является устойчивой, а вот сделать такую же быструю реализацию устойчивой MSD сортировки с дополнительной памятью не получается на сколько я знаю.
Люди минусуют ту точку зрения, которая им интуитивно не нравится. А этот коммент скорее всего заминусовали из-за всей дискуссии в целом. Против моей позиции по образованию есть миллион аргументов, которые я сам могу привести (особенно учитывая средний уровень отечественных вузов и актуальность учебных программ), и я готов их обсуждать, но люди в основном отделываются простым «голосованием ногами». Я никого не виню — я свое место в жизни вижу и знаю какие знания мне нужны, поэтому благодарен ВУЗу, который хотя бы отчасти мне их дал.
Хорошее университетское образование дает систематизированные знания, которые очень сложно получить (но не невозможно) отрывочным чтением отдельных книг.
Это безусловно не отменяет необходимость самостоятельного образования. Просто это легче делать, когда есть фундамент.
А почему не отсортировать и пользоваться бинарным поиском? Или воспользоваться самобалансирующимся деревом? Константная сложность поиска в хеше — это всего лишь теория и часто с помощью кривых рук удается сломать эту вероятностную гарантию. А если еще надо выполнять другие операции, например выборку диапазона? Для принятия таких решений в каждом конкретном случае нужно обладать знаниями о том как все устроено под капотом.
К тому же иногда нужно разработать какой-то новый алгоритм или модифицировать существующий под конкретную специфику задачи.
Чем дальше будет развиваться IT отрасль, тем все меньшей будет потребность в специалистах без образования. Потому что, например, такой программист будет разрабатывать O(n^2) алгоритмы там, где можно и нужно придумать O(nlogn).
Просто в английской версии как всегда (за редкими исключениями) описано все более подробно и с бОльшим количеством ссылок. И я бы не сказал, что это решение «задач искусственного интеллекта». Это просто парадигма оптимизации решения NP-полных задач.
Предполагается, что кандидат выберет какую-нибудь статью с последних топовых конференций (NIPS, ICML, ICLR, CVPR, ACL, RecSys и других) и сделает небольшой разбор: какая была постановка задачи, почему это важно, какое новшество в алгоритмах предложили авторы и какие результаты получили.
С точки зрения теоретических знаний мы бы хотели, чтобы кандидат имел общее понимание базовых принципов машинного обучения и математической статистики.
Деньги занимать не придётся :)
Клун в разговоре обещал, что у них будет продолжение, где они будут более внимательно оценивать переносимость фичей на датасеты совсем иной природы.
Если же говорить о прикладной области, то разработчики искусственных нейронных сетей скорее вдохновляются и пытаются подсмотреть какие-то вещи в реальном мозге, чтобы эффективно решать широкий спектр задач. Это не означает, что они должны всецело следовать механизмам, которые мы наблюдаем в природе, особенно учитывая то, что наше знание данных механизмов оставляет желать лучшего.
И в целом это абсолютно неконкретный и пространный разговор, который не имеет особого смысла в контексте рассматриваемой лекции.
А по сути «отрицательные входы» напрямую есть в мозге — нейромедиаторы, которые гиперполяризуют мембрану постсинаптического нейрона при взаимодействии с рецепторами постсинапса. В состоянии покоя потенциал на мембране отрицательный — примерно -65мВ (для разных нейронов по разному). При деполяризации до некоторого порогового потенциала (примерно -45мВ)тначинается лавинообразная активация потенциал-зависимых натриевых каналов, которые пртводят к дальнейшей деполяризации и соответственно генерации спайка на уровне примерно 30 мВ. Все что я описал — очень примерно и бывает несколько по разному для разных типов нейронов и разных состояний. Все это Вы можете прочитать в любом учебнике по нейрофизиологии.
Также призываю Вас отличать технические задачи обработки данных и нейробиологию. Это две разных, хоть и в определенной степени связанных области.
Таким образом взвешенная сумма по признакам формирует разделяющую гиперплоскость. Собственно именно об этом и говорит лектор. Если Вы имеете ввиду, что нейрон не может одновременно давать сразу два значения, то в общем случае Вы правы, хотя есть модели и многомерных нейронов, но они практически не применяются.
Во-первых, какой нейрон Вы имеете ввиду? Если модельный, то они могут выдавать все что угодно, в зависимости от своей модели (как 0 и 1, так и -1 и 1, а еще вещественное число распределенное по самым различным законам распределения на интервалах (-1;1) или (0;1) или еще миллион других вещей). Если же биологический, то в отношении него можно говорить о выдаче 0 или 1 в аксоне только в переносном смысле.
Во-вторых, как в модели, так и в реальном мозге, конечно есть и активирующие, и ингибирующие связи.
И простите за оффтоп, но я просмотрел Ваш сайт про сортировки и там как раз в разделе про radix sort ошибка:
«Кроме того, MSD, в отличие от LSD, является устойчивым алгоритмом.» LSD безусловно является устойчивым алгоритмом, а вот как раз с MSD все не так просто. Наиболее быстрая in-place реализация не является устойчивой, а вот сделать такую же быструю реализацию устойчивой MSD сортировки с дополнительной памятью не получается на сколько я знаю.
Это безусловно не отменяет необходимость самостоятельного образования. Просто это легче делать, когда есть фундамент.
К тому же иногда нужно разработать какой-то новый алгоритм или модифицировать существующий под конкретную специфику задачи.