Pull to refresh
196
0
Михаил @mikhanoid

ИММ УрО РАН

Send message

Тысяча чертей! Потребитель? Защищайтесь!

Reading time5 min
Views16K
Так уж сложилось, что законодательство РФ в большинстве своем далеко от совершенства. Противоречит само себе, множественно трактуется и вообще сложновато для восприятия.
Но есть луч света в темном царстве!
Закон о защите прав потребителя. Замечательная штука, поверьте. При прокачанном скиле использования данного закона можно стать настоящим потреб. террористом. Это, кстати, полуофициальный термин — так называют людей, намеренно злоупотребляющих широкими возможностями, которые предоставляются вышеупомянутым законом.
Итак! На что вы имеете право!
По просьбе NermaN я попробую составить мануал, как и что.
Читать дальше →

Бескомпромиссная замена 60-ваттной лампочке

Reading time1 min
Views4.4K
Европа стала на распутье: отказаться от ламп накаливание или нет. У ламп накаливания нет будущего, но минусы (дороговизна, вредность + проблемы утилизации, слабый световой поток) энергоэффективных ламп не дают им распространиться повсеместно.

Компания Cree предлагает альтернативу: LED-лампочки. И хотя светодиодные лампы от Cree выполнены лишь в виде инженерного образца, нет сомнении, что их ждет «светлое» будущее.

Источник

Прошу прощения, что оформил как топик, для пост-ссылки не хватило кармы, а пройти мимо такой новости не позволила забота и интерес к нашему совместному будущему.



Видеоролик (почему-то не вставился)

UPD В комментариях VolCh подсказывает об отечественной разработке от ООО «Световод», выпущенной в серийное производство.

В интересное время живем!

Новый тип памяти удивляет даже его изобретателей

Reading time2 min
Views2.8K
image

Обычно фундаментальные открытия в физике опережают их практическое применение. В наше время, когда серьёзная наука в упадке, зачастую дело обстоит совсем наоборот. Вот и инженеры IBM, создав два с половиной года назад рабочий, по их словам, прототип нового типа энергонезависимой памяти Racetrack memory столкнулись в итоге с удивительными физическими явлениями. Как оказалось на практике, процесс воздействия на магнитные спины электронов в носителе информации имеет «массу» и, следовательно, инерционен.

Носитель памяти Racetrack memory — это тончайшая нанопроволочка из пермаллоя — материала, весьма чувствительного к магнитному полю. Подавая на проволочку серию импульсов, разработчики научились передвигать по ней магнитные домены. Последние формировались в момент воздействия магнитным полем записывающей головки на магнитные спины электронов в проволоке. Изменение направления магнитного поля в головке меняло ориентацию спинов на противоположную. Как результат, на границе доменов образовывались так называемые доменные стены — участки с изменяемой или неизменной полярностью, уже представляющие собой основу для считывания «нуля» или «единицы», как это происходит в тех же жёстких дисках или на магнитной ленте. Только память Racetrack memory свободна от механики. В ней нет физически движущихся частей. Домены перемещаются мимо участков считывания и записи в оба направления с помощью импульсов поляризации — верх износостойкости.

Сюрприз оказался в том, что «движение» доменов не начиналось сразу после подачи импульса и также не прекращалось после снятия управляющего напряжения.
Читать дальше →

NLP: проверка правописания — взгляд изнутри (часть 3)

Reading time4 min
Views4.4K
(Часть 1, Часть 2) В прошлый раз я преждевременно упомянул токенизацию; теперь можно поговорить и о ней, а заодно и о маркировке частей речи (POS tagging).

Предположим, мы уже выловили все ошибки (какие догадались выловить) на уровне анализа текста регулярными выражениями. Стало быть, пора переходить на следующий уровень, на котором мы будем работать с отдельными словами предложения. Разбиением на слова занимается модуль токенизации. Даже в столь простой задаче есть свои подводные камни. Я даже не говорю о языках вроде китайского и японского, где даже вычленение отдельных слов текста нетривиально (иероглифы пишут без пробелов); в английском или в русском тоже есть над чем подумать. Например, входит ли точка в слово-сокращение или представляет собой отдельный токен? («др.» — это один токен или два?) А имя человека? «J. S. Smith» — сколько здесь токенов? Конечно, по каждому пункту можно принять волевое решение, но в дальнейшем оно может привести к различным последствиям, и это надо иметь в виду.

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

Нейронные сети, основанные на гомеостатических нейронах: самоорганизация и целенаправленное поведение

Reading time9 min
Views9.2K

Введение


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

Сразу оговорюсь, что эта модель не претендует никоим образом на прототип ИИ. Мы скорее хотели исследовать возможность самоорганизации и перспективы возникновения целостного целенаправленного поведения в динамической системе «эгоистичных» (гомеостатических) нейронов.
Как мне кажется, для более полного понимания логики работы модели будет полезно прочитать мой топик про Теорию функциональных систем, однако опять же это на ваше усмотрение.

Поехали!
Читать дальше →

Distributed Network Messaging Protocol — хорошо забытый FTN

Reading time4 min
Views3.7K
Жила-была технология FTN aka FidoNet. Она и сейчас живет где-то на пыльных системниках, но когда интернеты в России были маленькими, это была весьма популярная технология обмена сообщениями.

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

Схема сети

Читать дальше →

Памяти Алексея Яковлевича Червоненкиса

Reading time2 min
Views74K
Этот текст памяти Алексея Яковлевича написал Аркадий Волож, сооснователь и генеральный директор Яндекса.

22 сентября трагически погиб Алексей Яковлевич Червоненкис — ведущий сотрудник Института проблем управления РАН, профессор МФТИ и Лондонского университета, преподаватель Школы анализа данных, человек, который внёс огромный вклад в теорию машинного обучения.



У науки об обучении машин до сих пор было три периода: докомпьютерный, компьютерный и современный период больших данных.

Первой великой работой Червоненкиса и Вапника была вот эта статья, вышедшая в 1971 году. Теория сходимости частот к их вероятностям определила развитие этой части науки на несколько десятков лет вперед.

Это был период «теоретического» развития машинного обучения. Тогда считать можно было только на каких-нибудь М-200 или, в хорошем случае, на БЭСМ-ах, поэтому о «широком применении в народном хозяйстве» речи не шло. Но различать цели в воздухе, например, или выискивать шумы на эхо-кардиограммах это уже помогало.

Потом наступил второй этап науки об обучении машин, компьютерный. В 1990-е люди научились, например, довольно хорошо распознавать и оцифровывать тексты (в том числе рукописные) или очищать почту от спама. Половина из этих методов работала на знаменитом SVM (Support Vector Machine, метод опорных векторов), придуманном в начале 1990-х Червоненкисом и Вапником (VC-Dimension = Vapnik-Chervonenkis dimension). В середине 2000-х в любой известной конторе работали на SVM-е — и у нас, и в Яху, и в Гугле, и в Амазоне, и в Нетфликсе. SVM описан в любом учебнике по нашей теме.
Читать дальше →

Применение машинного обучения в трейдинге

Reading time8 min
Views43K
Примечание переводчика 1. Я наткнулся на этот блог в одном из обзоров материалов по машинному обучению. Если вы хорошо разбираетесь в машинном обучении, то в этой статье вы не найдете для себя ничего интересного. Она достаточно поверхностная и затрагивает только основы. Если же вы, как и я, только начинаете интересоваться данной темой, то добро пожаловать под кат.
Примечание переводчика 2. Кода будет мало, а тот что есть написан на языке R, но не стоит отчаиваться, если вы его до сих пор никогда в глаза не видели. До этой статьи я тоже ничего о нем не знал, поэтому я специально отдельно написал «шпору» по языку, включив туда все, что вам встретится в статье. Если хотите сами разобраться, то начать рекомендую c маленького курса на CodeSchool. На хабре тоже есть интересная информация и полезные ссылки. И наконец вот тут есть большая шпаргалка.
Примечание переводчика 3. Статья из двух частей, однако самое интересное начинается только во второй части, поэтому я позволил себе объединить их в одну статью.


Часть 1


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

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

Секреты скорости Swift

Reading time8 min
Views35K
С момента анонса языка Swift скорость была ключевым элементом маркетинга. Еще бы – она упоминается в самом названии языка (swift, англ. — «быстрый»). Было заявлено, что он быстрее динамических языков наподобие Python и Javascript, потенциально быстрее Objective C, а в некоторых случаях даже быстрее, чем C! Но как именно они это сделали?

Спекуляции


Несмотря на то, что сам язык предоставляет огромные возможности для оптимизации, у нынешней версии компилятора с этим не все в порядке, и получить хоть какие-то успехи в тестах производительности стоило мне немало сил. В основном это происходит из-за того, что компилятор генерирует массу излишних действий retain-release. Думаю, что это быстро поправят в следующих версиях, но пока мне придется говорить о том, благодаря чему Swift может быть потенциально быстрее Objective C в будущем.

Более быстрая диспетчеризация методов


Как известно, каждый раз, когда мы вызываем метод в Objective C, компилятор транслирует его в вызов функции objc_msgSend, которая занимается поиском и вызовом нужного метода в рантайме. Она получает селектор метода и объект, в таблицах методов которого производится поиск непосредственного куска кода, который будет обрабатывать этот вызов. Функция работает очень быстро, но зачастую делает куда больше работы, чем действительно нужно.

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

С другой стороны, в 99.999% случаев вы не будете врать компилятору. Когда объект объявлен как NSView *, это либо непосредственно NSView, либо дочерний класс. Динамическая диспетчеризация необходима, а вот настоящая пересылка сообщений практически не нужна, но природа Objective C заставляет всегда использовать самый «дорогой» вид вызовов.
Читать дальше →

This is Science: Что внутри нейроморфного чипа?

Reading time4 min
Views35K


После недавнего анонса нейроморфного чипа от IBM на Хабре, настало время познакомиться с тем, как работа реальных нейронов переносится в железо нейроморфных чипов. А поможет нам в этом статья, опубликованная в ACSNano, о трёхмерном электронном синапсе.
Нейроморфные чипы рады приветствовать вас!

Google использует машинное обучение, чтобы повысить эффективность центров обработки данных

Reading time4 min
Views13K
Интернет-гигант применяет машинное обучение и искусственный интеллект для повышения эффективности своих дата центров. Как сообщил Джо Кава, вице-президент направления ЦОД в Google, компания начала применять нейронные сети для анализа огромного количества данных, собираемых на серверах, и выдачи рекомендаций по усовершенствованию их работы.

Фактически, Google построил компьютер, который знает о его дата-центрах даже больше, чем сами инженеры. Человеческий ресурс не списывается со счетов, но Кава считает, что использование нейронной сети даст Google возможность достичь новых горизонтов в эффективности работы серверных ферм благодаря выходу за рамки того, что могут увидеть и проанализировать инженеры.

Читать дальше →

Функциональный Javascript. Пишем свои линзы, часть 1

Reading time7 min
Views29K
Привет, хабр.
В данной статье мы познакомимся с линзами, узнаем для чего они нужны, а также реализуем их на JavaScript.

Зачем нужны линзы


Начнем, пожалуй, с ответа на вопрос, зачем же нужны линзы.

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

В основе этого лежит тот факт, что при изменении какой-либо части неизменяемой структуры данных создается ее копия, отличающаяся от оригинала этой самой измененной частью. Полное копирование всей исходной структуры не эффективно, поэтому новая структура как правило использует ссылки на неизмененные части из оригинала.
Читать дальше →

Машинное обучение — микроскоп современного ученого. Зачем ЦЕРНу технологии Яндекса

Reading time14 min
Views20K
В начале июля в нашем офисе прошел семинар, посвященный взаимодействию Яндекса и ЦЕРН. В понедельник мы опубликовали первую его часть — доклад Андрея Голутвина о новом эксперименте SHiP (Search for Hidden Particles). Вторая часть этого семинара была отведена Андрею Устюжанину о совместных проектах Яндекса и ЦЕРН.



Андрей рассказал о применении технологий Яндекса в физике высоких энергий. В наши дни над экспериментами зачастую работает огроное количество людей из разных стран. Объединенная экосистема для автоматизации экспериментов может сделать работу исследователей более скоординированной и поможет решить множество других проблем. Единый интерфейс, онлайн-доступ к результатам других участников, система версионирования и возможность обмена библиотеками — все это может сильно упростить исследователям жизнь.

Кроме того, в современной физике высоких энергий активно применяется машинное обучение. На основе тестовых выборок обучаются классификаторы, которые в дальнейшем определяют наличие тех или иных событий уже в реальных данных. При этом количество формул, которые может потребоваться обучить для одного анализа, достигает нескольких сотен или даже тысяч. Надо, однако, иметь в виду, что наши разработки применимы не только в этой сфере, но и в других отраслях науки. Этот доклад — скорее про исследования в целом, про процесс экспериментального подтверждения различных теорий, гипотез и моделей. С такими задачами обычно сталкиваются люди из научно-исследовательских организаций, но сейчас все чаще они возникают и в коммерческих компаниях.
Читать дальше →

Вероятностные модели: LDA, часть 2

Reading time6 min
Views24K
Продолжаем разговор. В прошлый раз мы сделали первый шаг на переходе от наивного байесовского классификатора к LDA: убрали из наивного байеса необходимость в разметке тренировочного набора, сделав из него модель кластеризации, которую можно обучать ЕМ-алгоритмом. Сегодня у меня уже не осталось отговорок – придётся рассказывать про саму модель LDA и показывать, как она работает. Когда-то мы уже говорили об LDA в этом блоге, но тогда рассказ был совсем короткий и без весьма существенных подробностей. Надеюсь, что в этот раз удастся рассказать больше и понятнее.

Читать дальше →

Теория относительности в реальном мире: GPS

Reading time4 min
Views140K


Люди часто спрашивают меня: «Чем же так хороша теория относительности?». Обычно о ней думают как о некой абстрактной, мистической математической теории, никак не связанной с повседневной жизнью. На самом деле, это совсем не так.
Читать дальше →

Вышел rust 0.11.0

Reading time3 min
Views13K

Mozilla и сообщество Rust выпустили новый релиз Rust, версии 0.11.0.

Несмотря на то, что язык находится в активной фазе разработки, работа была сфокусирована над улучшением системы типов и библиотек. Главная работа была проведена над имплементацией типов с динамическим размером (DST) и рефакторингом стандартной библиотеки.
В этом релизе также удалили ~ и @ в угоду типам Box и Gc из стандартной библиотеки (компилятор пока знает о этих типах больше чем нужно, но вскоре эти типы станут самыми обычными типами Rust).
Читать дальше →

Вероятностные модели: от наивного Байеса к LDA, часть 1

Reading time6 min
Views37K
Продолжаем разговор. Прошлая статья была переходной от предыдущего цикла о графических моделях вообще (часть 1, часть 2, часть 3, часть 4) к новому мини-циклу о тематическом моделировании: мы поговорили о сэмплировании как методе вывода в графических моделях. А теперь мы начинаем путь к модели латентного размещения Дирихле (latent Dirichlet allocation) и к тому, как все эти чудесные алгоритмы сэмплирования применяются на практике. Сегодня – часть первая, в которой мы поймём, куда есть смысл обобщать наивный байесовский классификатор, и заодно немного поговорим о кластеризации.


Читать дальше →

Крестики-нолики: компилятор против человека — экстремальный метапрограмминг

Reading time34 min
Views24K
"- После Мятежа Галактическое Содружество наложило строгие ограничения на метафункции высшего порядка. И не только из соображений этики; их власти опасаются вообще всякого проявления мании величия..."
(из поисковой выдачи google)
Предлагаю Вам сыграть в крестики-нолики с компилятором. Для игры знания c++ не потребуются, достаточно наличия cmake, python и собственно компилятора c++ ( потянет даже такой древний как gcc-3.3 ). Python используется только для ввода данных пользователя, запуска компилятора после каждого хода, и скомпилированной программы для получения результата. Все вычисления (следующий ход, определение победителя или констатации ничьей) производятся на этапе компиляции, в run-time только вывод результата.
Итак, готовы сразиться с компилятором?

Распознавание речи для чайников

Reading time9 min
Views169K

В этой статье я хочу рассмотреть основы такой интереснейшей области разработки ПО как Распознавание Речи. Экспертом в данной теме я, естественно, не являюсь, поэтому мой рассказ будет изобиловать неточностями, ошибками и разочарованиями. Тем не менее, главной целью моего «труда», как можно понять из названия, является не профессиональный разбор проблемы, а описание базовых понятий, проблем и их решений. В общем, прошу всех заинтересовавшихся пожаловать под кат!

Читать дальше →

Алгоритм поиска наименьшего по мощности покрытия конечного множества его подмножествами

Reading time3 min
Views16K
Разбирая старые бумаги наткнулся на изрядно потрёпанную тетрадь, в которой обнаружил наброски алгоритма поиска покрытия. Автор алгоритма Виктор Анатольевич Щербанов — мой учитель, под руководством которого я работал в девяностые годы прошлого столетия. Моё скромное участие в основном заключалось в том, что я предлагал в большинстве случаев неверные (а порой и просто бредовые) варианты. Что в общем-то не помешало Шефу (так мы его называли между собой) таки довести работу над алгоритмом до логического завершения. Где-то в двухтысячных годах алгоритм был опубликован в одном из институтских изданий Томска. Но думаю, что не лишним будет вспомнить его ещё раз. Собственно в память о Шефе я и решил написать этот пост. Может быть алгоритм покажется кому-то интересным или подтолкнёт на какие-то новые идеи по реализации алгоритма.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity

Specialization

System Software Engineer, scientific programming
Scheme
C
Assembler
Linux
Maths
Julia
Compilers
Math modeling
Machine learning
Computer Science