Pull to refresh
167
0
Александр Скиданов @SkidanovAlex

Системный Программист

Send message

Байесовская нейронная сеть — теперь апельсиновая (часть 2)

Reading time16 min
Views37K
Как вы думаете, чего в апельсине больше — кожуры, или, хм, апельсина?



Предлагаю, если есть возможность, пойти на кухню, взять апельсин, очистить и проверить. Если лень или нет под рукой — воспользуемся скучной математикой: объем шара мы помним из школы. Пусть, скажем, толщина кожуры равна от радиуса, тогда , ; вычтем одно из другого, поделим объем кожуры на объем апельсина… получается, что кожуры что-то около 16%. Не так уж мало, кстати.

Как насчет апельсина в тысячемерном пространстве?

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

  • во-первых, в тысячемерном гиперапельсине кожуры больше, чем мякоти
  • а во-вторых, ее больше примерно в 246993291800602563115535632700000000000000 раз

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

Начнем с этого, пожалуй.

Читать дальше →
Total votes 53: ↑52 and ↓1+51
Comments26

Мозг. Голографическая память. Квантовые вычисления. Анонс

Reading time3 min
Views16K


С одной стороны, еще Резерфорд говорил: «Если учёный не может объяснить уборщице, которая убирается у него в лаборатории, смысл своей работы, то он сам не понимает, что он делает». С другой стороны, короткое объяснение порой способно запутать сильнее, чем что-либо прояснить. Я занимаюсь искусственным интеллектом. В этой области есть два основных направления: одно — придумать алгоритмы как что-либо сделать и другое — объяснить, как это делает человеческий мозг. И если первое направление может похвастаться грандиозными успехами, то второе пока только фонтанирует идеями разного уровня здравости. Понимание работы мышления усложняется тем, что все алгоритмические идеи должны быть соотнесены с возможностями реального мозга и пройти тест на биологическую достоверность. Так вот, мое направление – второе.
Читать дальше →
Total votes 32: ↑27 and ↓5+22
Comments41

Лекции по биоинформатике

Reading time11 min
Views27K


Рад представить вам 27 лекций по биоинформатике (включая описания, слайды и полные видеозаписи). Лекции читались на летней школе по биоинформатике, которая проходила в июле 2014 под Санкт-Петербургом, собрала вместе 100 студентов со всей России и СНГ, а также лекторов из МГУ, МФТИ, Сколтеха, РАН, СПбАУ, СПбГПУ, СПбГУ, Yale University, Fox Chase Cancer Center, George Washington University, Pennsylvania State и других прекрасных организаций.

Школу традиционно проводила команда Института биоинформатики, а поддерживали ее СПбАУ РАН, СПбГУ, JetBrains, РВК, BIOCAD, EMC, Фонд «Династия» и РФФИ, благодаря чему удалось сделать мероприятие абсолютно бесплатным для всех участников.
Смотреть лекции, узнавать новое
Total votes 20: ↑19 and ↓1+18
Comments0

Парсим русский язык

Reading time8 min
Views70K

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

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

"Мама мыла раму":

(предложение
    (именная гр. (сущ мама))
    (глаг. гр. (глаг мыла)
        (именная гр. (сущ раму)))
    (. .)))


Это называется синтаксическим деревом предложения. В графическом виде его можно представить следующим образом (в упрощенном виде):

Читать дальше →
Total votes 128: ↑124 and ↓4+120
Comments97

Миллион одновременных соединений на Node.js

Reading time9 min
Views104K


TL;DR:


  • Node.js v0.8 позволяет обрабатывать 1 млн одновременных HTTP Comet соединений на Intel Core i7 Quad/16 Gb RAM практически без дополнительных настроек.
  • На 1 соединение тратится чуть больше 10 Kb памяти (4.1 Kb Javascript Heap + 2.2 Kb Node.js Native + 3.8 Kb Kernel)..
  • V8 Garbage Collector не рассчитан на управление > ~500Mb памяти. При превышении нужно переходить на альтернативный режим сборки мусора, иначе «отзывчивость» сервера сильно уменьшается.
  • Подобный опыт можно (и нужно!) без особых затрат повторить самому (см. под катом).

Читать дальше →
Total votes 193: ↑187 and ↓6+181
Comments125

Краткий курс компьютерной графики, аддендум: GLSL

Reading time5 min
Views45K

Official translation (with a bit of polishing) is available here.




Очередная вводная статья для начинающих программировать графику реального времени


У меня когда-то возникла задача (быстро) визуализировать молекулы. Например, молекула может быть представлена просто как набор сфер навроде вот этого:



Конкретно этот вирус состоит из примерно трёх миллионов атомов. Вы можете скачать его модель на замечательном сайте rcsb.org.

Это отличный топик для обучения шейдерам.
Читать дальше →
Total votes 52: ↑49 and ↓3+46
Comments64

Как бороться с OutOfMemoryError на практике, или ох уж мне эти базы данных

Reading time17 min
Views73K
Приветствую, Хабр!
Немного лирики
Сегодня, 2015-03-21, я решил сделать пол-дела, и всё-таки начать писать статью о том, как же всё-таки начать понимать, что же делать с OOM, да и вообще научиться ковырять heap-dump'ы (буду называть их просто дампами, для простоты речи. Также я постараюсь избегать англицизмов, где это возможно).
Задуманный мной объём «работ» по написанию этой статьи кажется мне не однодневным, а посему статья должна появиться лишь через пару недель спустя день.

В этой статье я постараюсь разжевать, что делать с дампами в Java, как понять причину или приблизиться к причине возникновения OOM, посмотреть на инструменты для анализа дампов, инструмент (один, да) для мониторинга хипа, и вообще вникнуть в это дело для общего развития. Исследуются такие инструменты, как JVisualVM (рассмотрю некоторые плагины к нему и OQL Console), Eclipse Memory Analyzing Tool.
Очень много понаписал, но надеюсь, что всё только по делу :)
Читать дальше →
Total votes 50: ↑49 and ↓1+48
Comments31

Создан открытый аналог Siri — Sirius, доступный по лицензии BSD

Reading time1 min
Views17K


Группа Clarity Lab, находящаяся в университете Мичигана, предлагает решение с открытым исходным кодом для персонального компьютерного помощника. Их программа распознаёт голос и ищет ответы на запросы, точно как делают Siri от Apple, Google Now от Google, и аналогичные решения от Microsoft и Amazon. Проект под названием Sirius умеет даже больше, чем его аналоги – например, ему можно предоставить картинку и задать по ней вопрос.

Проект спонсируют Google, DARPA, американские военные и Национальный научный фонд США. Он распространяется по лицензии BSD, что означает полную открытость и бесплатность для всех желающих. Значит, любые стартапы смогут реализовать такую функциональность в своих проектах и устройствах.
Читать дальше →
Total votes 35: ↑35 and ↓0+35
Comments12

Пока космические корабли бороздят просторы…

Reading time2 min
Views15K
А что именно они бороздят? Предлагаю оторваться ненадолго от лирики о полётах к другим звёздам. Почему бы не посмотреть, что летает у нас над головой буквально в каких-то 200-400 км. А как это сделать сейчас расскажу (специалистам напомню).
Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments3

SageMathCloud — мечта для любителей Python, математики и Linux

Reading time7 min
Views38K
SageMathCloud (сокращённо SMC) — это онлайновый сервис, в котором можно написать математический или любой другой расчёт в Sage или IPython Notebook. Расчёт можно комбинировать с HTML, CSS, JavaScript, CoffeeScript, Go, Fortran, Julia, Gap, Axiom, R, Ruby, Perl, Maxima, Maple, Markdown, Wiki (и это неполный список!). При редактировании поддерживается мультикурсорность, можно включить биндинги Vim или Sublime Text. Пользователю также доступна консоль Ubuntu и доступ к проекту по ssh. Можно создавать документы LaTeX и встраивать в них код на Python, который не будет отображаться в итоговом pdf. Широкие возможности позволяют написать не просто расчёт с 2D и 3D графикой, а целое интерактивное приложение или собственный веб-сервер на Flask. Можно расшарить расчёт пользователям на редактирование, и Вы будете видеть, что они меняют и даже где стоит их курсор! При этом великолепии SageMathCloud имеет открытый исходный код, который выложен на Github.



Читать дальше →
Total votes 53: ↑51 and ↓2+49
Comments27

Играем с генетическими алгоритмами

Reading time6 min
Views102K
Одним субботним декабрьским вечером сидел я над книгой The Blind Watchmaker (Слепой Часовщик), как на глаза мне попался невероятно интересный эксперимент: возьмём любое предложение, например Шекспировскую строку: Methinks it is like a weasel и случайную строку такой же длины: wdltmnlt dtjbkwirzrezlmqco p и начнем вносить в неё случайные изменения. Через сколько поколений эта случайная строка превратится в Шекспировскую строку, если выживать будут лишь потомки более похожие на Шекспировскую?

Сегодня мы повторим этот эксперимент, но в уже совершенно другом масштабе.



Структура статьи:
  1. Что такое генетический алгоритм
  2. Почему это работает
  3. Формализуем задачу со случайной строкой
  4. Пример работы алгоритма
  5. Эксперименты с классикой
  6. Код и данные
  7. Выводы

Осторожно трафик!
Читать дальше →
Total votes 59: ↑51 and ↓8+43
Comments22

Питер Тиль: конкуренция – удел проигравших

Reading time8 min
Views55K


Cтэнфордский курс CS183B: How to start a startup. Стартовал в 2012 году под руководством Питера Тиля. Осенью 2014 года прошла новая серия лекций ведущих предпринимателей и экспертов Y Combinator:


Первая часть курса
Читать дальше →
Total votes 44: ↑41 and ↓3+38
Comments53

Интерактивное голосовое редактирование текста с помощью новых речевых технологий от Яндекса

Reading time11 min
Views96K
Сегодня наше приложение Диктовка для интерактивного написания и редактирования текста голосом появилось в AppStore и Google Play. Его главная задача — продемонстрировать часть новых возможностей комплекса речевых технологий Яндекса. Именно о том, чем интересны и уникальны наши технологии распознавания и синтеза речи, я хочу рассказать в этом посте.



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

Кроме этого, наш синтез речи поддерживает эмоции в голосе. И, насколько нам известно, это пока первый коммерчески доступный синтез речи с такой возможностью.

Обо всём этом, а также о некоторых других возможностях SpeechKit: об активации голосом, автоматической расстановке пунктуационных знаков и распознавании смысловых объектов в тексте — читайте ниже.
Читать дальше →
Total votes 116: ↑113 and ↓3+110
Comments104

Вышла книга «Getting Started with LLVM Core Libraries»

Reading time2 min
Views13K
Думаю, многим, также, как и мне, книга «Getting Started with LLVM Core Libraries» покажется интересной. Это первая книга, посвященная целиком и полностью LLVM. В основном, как следует из названия, ориентирована на новичков, которые только обратили свое внимание на LLVM, но уже имеют опыт программирования на C++.
Небольшое описание содержимого книги
Total votes 25: ↑25 and ↓0+25
Comments8

Марковские случайные поля

Reading time4 min
Views45K
Статья посвящена описанию метода CRF (Conditional Random Fields), являющимся разновидностью метода Марковских случайных полей (Markov random field). Данный метод нашел широкое применение в различных областях ИИ, в частности, его успешно используют в задачах распознавания речи и образов, обработки текстовой информации, а также и в других предметных областях: биоинформатики, компьютерной графики и пр.
Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments13

Технологическая сингулярность, как событие неизбежное

Reading time9 min
Views146K


Думаю, многие, читающие эти строчки, на сегодняшний день видят, что прогресс с каждым днем ускоряется. Еще в начале XX века многие не верили в самолеты и думали, что «завтра будет сегодня». Эта тенденция в обществе была всегда и наблюдается сейчас. Завтра будет сегодня. В принципе, это простое эмпирическое наблюдение, однако если сравнить то, что было год назад, и что есть сегодня, становится виден этот прогресс. Если бы наблюдатель провел такое наблюдение в начале XIX века, очевидный прогресс он вряд ли бы увидел, разве что попал бы в переломный момент. Сейчас же различные научные достижения, мелкие и большие, происходят каждый день. Интернет стал катализатором этого процесса. Свободный обмен информацией объединил ученых со всего мира и лишил одной из главных проблем — повторного изобретения, чем часто страдал прошлый век. Конечно, сейчас данная проблема наверняка сохраняется из-за секретности некоторых государственных программ, однако такие проекты — это капля в море тысяч энтузиастов. Разумеется, сейчас наблюдаются не лучшие тенденции государственного контроля, но я, пожалуй, буду обсуждать в макромасштабе и не буду разбирать такие детали.

Уже вот 49 лет как выполняется закон Мура, а Intel готовит нам новые техпроцессы и новые подходы. Разрабатываются параллельно квантовые компьютеры, ДНК-компьютеры, нейронные сети… Все это произошло буквально за 30 лет.

Все неизбежно указывает на дальнейшее ускорение прогресса и движение к некой точке — технологической сингулярности.
Под катом я рассмотрю некоторые возможные сценарии этого процесса.
Total votes 124: ↑97 and ↓27+70
Comments228

XAircraft x650 и аэро-фотография

Reading time10 min
Views82K


Как-то раз позвонил мне один мой друг фотограф и задал очень интересный вопрос: “Что если повесить какую-нибудь фото-мыльницу на радиоуправляемый вертолёт и попробовать как-то снимать этой мыльницой с воздуха?”
А я, помнится, с раннего детства мечтал о радиоуправляемых летательных аппаратах, но жил в так называемой “глубинке”, поэтому дальше детских чертежей в этом деле я не продвинулся тогда. В этот раз с ходу я ответить ничего не смог, но т.к. тема меня вдруг заинтересовала (а кого не заинтересует?), я пообещал разобраться с вопросом и созвониться позже.

Читать дальше →
Total votes 73: ↑71 and ↓2+69
Comments58

Сверхбыстрое распознавание речи без серверов на реальном примере

Reading time10 min
Views331K

В этой статье я подробно расскажу и покажу, как правильно и быстро прикрутить распознавание русской речи на движке Pocketsphinx (для iOS порт OpenEars) на реальном Hello World примере управления домашней техникой.
Почему именно домашней техникой? Да потому что благодаря такому примеру можно оценить ту скорость и точность, которой можно добиться при использовании полностью локального распознавания речи без серверов типа Google ASR или Яндекс SpeechKit.
К статье я также прилагаю все исходники программы и саму сборку под Android.

Прикручиваем Pocketsphinx к своему Андроиду
Total votes 185: ↑182 and ↓3+179
Comments87

Логика мышления. Промежуточный итог

Reading time3 min
Views29K


Итак, на сегодня в сеть выложены 17 статей из цикла «Логика мышления». Сам цикл – это попытка построить достаточно полную модель работы мозга. То есть, не просто описать отдельные механизмы, но и показать, как из их взаимодействия может рождаться человеческое мышление. То, что уже опубликовано – это фундамент излагаемой концепции. В нем показывается, как на уровне нейронов реализуются основные информационные механизмы. Этот фундамент определенным образом задает правила всей дальнейшей игры. Он определяет, каким инструментарием мы располагаем для реализации более сложных процессов. Я постарался показать, что, оставаясь в рамках биологически достоверных идей, можно создать модель, обладающую высокими вычислительными возможностями. Как пример было показано соответствие между свойствами коры и возможностями реляционной алгебры.
Читать дальше →
Total votes 68: ↑58 and ↓10+48
Comments54

Как Яндекс использует лингвистику в поиске

Reading time1 min
Views18K
Яндексу ежедневно приходится отвечать на десятки миллионов запросов. Поисковая система должна уметь быстро и точно их обрабатывать. Без применения лингвистики поисковая система сможет найти только точные совпадения в проиндексированных документах. Чтобы найти релевантные документы, системе необходимо правильно определить язык запроса, исправить опечатки, произвести морфологический разбор каждого слова, расширить запрос синонимами или вообще его переформулировать. В этой лекции Алексей Зобнин постарался дать студентам Малого ШАДа ответы на следующие вопросы:

  • Зачем нужно учитывать морфологию?
  • Как и зачем мы определяем язык запроса и документа?
  • Что такое корпус языка?
  • Что такое языковые модели, и как они применяются в поиске?
  • Как производится морфологический анализ несловарных слов?
  • Как определить правильное значение и морфологическую парадигму омонимов?
  • Какие бывают опечатки, и как мы их исправляем?
  • Что такое расширения запроса и чем они могут быть полезны?



Страница лекции

Изначально лекция рассчитана на старшеклассников, но и взрослые смогут почерпнуть из нее много полезного.
Презентацию можно скачать здесь.
Читать дальше →
Total votes 62: ↑56 and ↓6+50
Comments8
1

Information

Rating
Does not participate
Location
San Francisco, California, США
Registered
Activity