Как стать автором
Обновить
40
0
Юрий Бабуров @buriy

Web, AI, Deep Learning, Python

Отправить сообщение

Букмарклет: разбор существенных моментов, часть первая

Время на прочтение11 мин
Количество просмотров9.9K
Как известно, букмарклет это небольшой javascript-код который, будучи сохраненным в закладках браузера, используется для выполнения каких либо действий над содержимым текущей веб-страницы.

Но почему в названии поста: часть первая? Потому, что современный букмарклет «с блэк джеком и шлюхами»* обычно состоит из нескольких взаимодействующих частей:
  1. первая часть букмарклета, которая является собственно букмарклетом это компактный javscript-код — не более 2000 символов, главная, но не единственная задача которого загрузить вторую часть;
  2. вторая часть букмарклета: это javscript-код произвольного размера, который выполняет всю оставшуюся работу;
  3. резервная часть букмараклета – которая запускается в действие, если вторая часть букмарклета не загрузилась.

И, как вы уже наверняка догадались, в данной публикации речь пойдет о первой части букмарклета,

Часть первая обычно выполняет следующие нехитрые действия:
Читать дальше →
Всего голосов 23: ↑19 и ↓4+15
Комментарии7

Item-based коллаборативная фильтрация своими руками

Время на прочтение10 мин
Количество просмотров19K
Робот-рекомендатель

Одной из наиболее популярных техник для построения персонализированных рекомендательных систем (RS, чтобы не путать с ПиСи) является коллаборативная фильтрация. Коллаборативная фильтрация бывает двух типов: user-based и item-based. User-based часто используется в качестве примера построения персонализированных RS [на хабре, в книге Т.Сегаран,...]. Тем не менее, у user-based подхода есть существенный недостаток: с увеличением количества пользователей RS линейно увеличивается сложность вычисления персонализированной рекомендации.

Когда количество объектов для рекомендаций большое, затраты на user-based подход могут быть оправданы. Однако во многих сервисах, в том числе и в ivi.ru, количество объектов в разы меньше количества пользователей. Для таких случаев и придуман item-based подход.

В этой статье я расскажу, как за несколько минут можно создать полноценную персонализированную RS на основе item-based подхода.
Читать дальше
Всего голосов 36: ↑35 и ↓1+34
Комментарии13

Баллада о продающих письмах

Время на прочтение9 мин
Количество просмотров38K
В Facebook мне попался очень интересный пост «Баллада о продающих письмах» на странице Антона Гладкова. Не могу не поделиться этим с Хабром, так как материал считаю чрезвычайно полезным. Но для этого пришлось произвести рерайт, поскольку оригинал насыщен запрещенными здесь словами. Надеюсь безобидный овощ под холодец сможет хотя бы частично передать эмоции автора, не нарушая правил.



В последнее время мне особенно часто попадаются в социальных сетях и прочих Интернетах статьи и посты, ругающие эффективность LinkedIn. Особенно в России, где бизнесмены даже фейсбук считают более подходящим для деловых переговоров. На западе LinkedIn тоже модно не любить: статьи о вреде эндорсов, 10 причин не писать и не принимать рекомендации, и тому подобная чушь.

На самом деле ругать инструменты придумали еще до появления Интернета и скорее всего задолго до нашей эры. Нам посчастливилось трудиться сейчас, когда Интернет у нас в кармане и я хотел бы поговорить о главной причине нелюбви к тем или иным современным каналам Интернет-продаж — о хреновых первых письмах.
Читать дальше →
Всего голосов 50: ↑32 и ↓18+14
Комментарии14

Задача изменения голоса. Часть 3. Прикладные модели представления речевого сигнала: LPC

Время на прочтение15 мин
Количество просмотров17K
image

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

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

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

Далее будет более подробно рассмотрена теория модели LPC (Linear Prediction Coding) – замечательный стройных подход к описанию речевого сигнала, в прошлом определивший направление развития речевых технологий на несколько десятилетий и до сих пор часто применяемый, как один из базовых инструментов при анализе и описании речевого сигнала.

Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии15

Как Google тестирует ПО

Время на прочтение9 мин
Количество просмотров40K
Прослушав вебинар «How Google Tests Software» я был так вдохновлен, что решил записать некоторые тезисы. Эта статья и есть мой конспект. Прежде всего, я должен внести ясность относительно ее содержания. Это не дословный перевод. Здесь описаны только те вещи, которые показались мне важными. Проще говоря, здесь описано не все, что прозвучало в вебинаре. Так же существует вероятность, что я понял что-то не до конца или даже понял неправильно. Поэтому горячо рекомендую прослушать вебинар самостоятельно.
Его ведет Джэймс Витакер, который в данный момент занимает пост технического директора по тестированию ПО в Google. Джэймс совместно с коллегами готовится выпустить одноименную книгу. В ней можно будет получить исчерпывающую информацию о том, как проводят тестирование GoogleMaps, Google+, ChromeOS, Android и т.д…
Читать дальше →
Всего голосов 224: ↑217 и ↓7+210
Комментарии52

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

Время на прочтение3 мин
Количество просмотров29K


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

Логика мышления. Часть 17. Реляционная модель данных

Время на прочтение4 мин
Количество просмотров44K


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

В 1970 году Эдгар Кодд опубликовал статью (Codd, 1970), в которой описал основы реляционной модели хранения данных. Практической реализацией этой модели стали все современные реляционные базы данных. Формализация модели привела к созданию реляционного исчисления и реляционной алгебры.

Основной элемент реляционной модели – это кортеж. Кортеж – это упорядоченный набор элементов, каждый из которых принадлежит определенному множеству или, иначе говоря, имеет свой тип. Совокупность однородных по структуре кортежей образует отношение.

Читать дальше →
Всего голосов 44: ↑39 и ↓5+34
Комментарии6

Логика мышления. Часть 16. Пакетное представление информации

Время на прочтение10 мин
Количество просмотров18K


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

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

Чтобы понять, какой формат описаний использует мозг, проследим последовательность зрительного восприятия. Разглядывая изображение, мы «сканируем» его быстрыми движениями глаз, называемыми саккадами (рисунок на КДПВ). Каждая из них помещает в центр зрения один из фрагментов общей картины. На зонах зрительной коры возникают описания, соответствующие тому, что мы видим в этот момент в центре, что видит периферия и каково смещение в результате только что проделанной саккады. Каждая следующая саккада порождает новую картину. Эти описания сменяют друг друга одно за другим.

Читать дальше →
Всего голосов 37: ↑30 и ↓7+23
Комментарии19

Логика мышления. Часть 15. Консолидация памяти

Время на прочтение16 мин
Количество просмотров35K


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

Попробуем представить информационную емкость мозга. Так как в основе памяти лежат нейроны, то для начала уточним, с каким количеством нейронов мы имеем дело. Наиболее точная оценка на сегодня, принадлежит Сюзанне Херкулано-Хузель (Frederico A.C. Azevedo, Ludmila R.B. Carvalho, Lea T. Grinberg, José Marcelo Farfel, Renata E.L. Ferretti, Renata E.P. Leite, Wilson Jacob Filho, Roberto Lent, Suzana Herculano-Houzel, 2009). По этой оценке на кору приходится 82% общей массы мозга и 19% от общего числа нейронов (рисунок ниже). По этой оценке кора состоит из порядка 16 миллиардов нейронов (1.6x1010).

Читать дальше →
Всего голосов 42: ↑34 и ↓8+26
Комментарии38

Логика мышления. Часть 14. Гиппокамп

Время на прочтение7 мин
Количество просмотров36K


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

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

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

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

Читать дальше →
Всего голосов 47: ↑40 и ↓7+33
Комментарии40

Логика мышления. Часть 13. Ассоциативная память

Время на прочтение8 мин
Количество просмотров30K


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

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

Когда мы говорили о распространении нейронных волн, мы исходили из того, что нейрон хранит на внесинаптической мембране те волновые картины, участником которых он является. Встретив знакомую картину, нейрон своим спайком создает продолжение уникального узора. И тут важно, что нейрон не просто в состоянии узнать волновую картину, а то, что он сам – часть распространяющегося узора. Только будучи сам частью уникальной волны нейрон способен участвовать в ее распространении.

Читать дальше →
Всего голосов 48: ↑37 и ↓11+26
Комментарии16

Логика мышления. Часть 10. Пространственная самоорганизация

Время на прочтение13 мин
Количество просмотров25K


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

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

Читать дальше →
Всего голосов 35: ↑29 и ↓6+23
Комментарии13

Логика мышления. Часть 9. Паттерны нейронов-детекторов. Обратная проекция

Время на прочтение8 мин
Количество просмотров22K


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

Продолжим разговор о нейронах-детекторах. Предположим, на зону коры посредством волновых туннелей проецируется некая информация. Каждый из проекционных пучков – это аксоны нейронов, расположенных на той зоне, которая эту информацию посылает. Проекция снимается с малого по площади участка коры. Волокна проекционного пучка, по сути, транслируют проходящие по этому участку волновые картины. То место принимающей коры, куда приходится проекция, само становится источником волн. Эти волны несут на принимающей зоне коры ту же информацию, что и волны на исходной зоне.

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

Если мы обучим несколько расположенных в относительной близости друг от друга нейронов детектировать одну и ту же волновую картину, то мы получим уже не одиночный нейрон-детектор, а детекторный паттерн. Реакция одного нейрона-детектора на характерный стимул – пакет импульсов вызванной активности. Реакция детекторного паттерна – это вызванная активность группы нейронов, образующих определенный узор. Естественно, что такой паттерн вызванной активности начнет обучать кору на распространение своего уникального идентификатора.

Читать дальше →
Всего голосов 33: ↑28 и ↓5+23
Комментарии16

Логика мышления. Часть 1. Нейрон

Время на прочтение10 мин
Количество просмотров314K


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

В настоящем цикле статей планируется рассказать о той концепции интеллекта над которой мы сейчас работаем и продемонстрировать некоторые решения, являющиеся принципиально новыми в сфере моделирования работы мозга. Но чтобы повествование было понятным и последовательным оно будет содержать не только описание новых идей, но и рассказ о работе мозга вообще. Какие-то вещи, особенно в начале, возможно покажутся простыми и общеизвестными, но я бы советовал не пропускать их, так как они во многом определяют общую доказательность повествования.
Читать дальше →
Всего голосов 62: ↑53 и ↓9+44
Комментарии23

Логика мышления. Часть 2. Факторы

Время на прочтение11 мин
Количество просмотров79K


В предыдущей части мы описали самые простые свойства формальных нейронов. Проговорили о том, что пороговый сумматор точнее воспроизводит природу единичного спайка, а линейный сумматор позволяет смоделировать ответ нейрона, состоящий из серии импульсов. Показали, что значение на выходе линейного сумматора можно сопоставить с частотой вызванных спайков реального нейрона. Теперь мы посмотрим на основные свойства, которыми обладают такие формальные нейроны.
Читать дальше →
Всего голосов 46: ↑34 и ↓12+22
Комментарии5

Пользовательские события в действии

Время на прочтение5 мин
Количество просмотров21K
В этой заметке расскажу, как я использую пользовательские события jQuery (custom events) в своей работе.

Имитиация событий


Дана простая задача, реализацию которой наблюдают все хабровчане: когда пользователь достаточно прокрутил страницу вниз, анимированно отображается блок-врезка «Лучшее за 24 часа», и скрывается, когда пользователь прокручивает страницу вверх. Эта задача решается подвешиванием обработчика на события scroll и resize окна (window), который занят двумя вещами: вычисляет, нужно или нет отображать/скрывать блок-врезку, и в зависимости от результата производит анимацию отображения или осуществляет скрытие.

Если эта задача стояла перед нами, как бы мы приступили к ее реализации? Ну, например, написали такой кусочек кода:
Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии6

Python-digest #3. Новости, интересные проекты, статьи и интервью [16 ноября 2013 — 23 ноября 2013]

Время на прочтение4 мин
Количество просмотров14K
В этот раз дайджест получился с задержкой на день, так как я приболел. Зато есть много интересного — вышла новая вкусная версия Python, вспомнилась неплохая книга для начинающих, ну и статьи на любой вкус.

Кроме того стараниями axce1 продолжается развитие инструмента для добавления новостей. Выполнена огромная работа по импорту в систему сторонних RSS потоков. Это должно увеличить количество статей, которые я успеваю обрабатывать за неделю и уменьшить шанс того, что какая-то важная новость пройдет мимо внимания. Большое ему за это спасибо!

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

А еще я предлагаю смешные 500 Яндекс-Денег в качестве стимула для того кто сделает перевод видео о том почему python 3.3 круче чем 2.7 в виде хабрастатьи.

Собственно дайджест под катом
Всего голосов 51: ↑48 и ↓3+45
Комментарии10

Первая программа для OS X своими руками — менеджер буфера обмена

Время на прочтение6 мин
Количество просмотров27K
Больше года прошло с тех пор, как я увлекся программированием под платформу iOS. Наконец-то я нашел свободное время попробовать свои силы на платформе OS X. Если вы давно испытываете интерес к платформе OS X, но никак не соберетесь начать, эта статья для вас! Под катом подробное описание процесса создания приложения — менеджера буфера обмена. Все исходники можно найти на github.com/k06a/Clipshare


Читать дальше →
Всего голосов 97: ↑84 и ↓13+71
Комментарии45

Интенсивность важнее тщательности

Время на прочтение6 мин
Количество просмотров97K
Недавно я прочитал интересную книгу Алана Пиза “Ответы в вопросах”. Помимо основного содержания про то, как правильно нужно задавать вопросы, чтобы получить нужные вам ответы, в книге есть вступление, в котором Алан рассказывает о своем пути к успеху. Уже с десяти лет он начал торговать резиновыми губками, а в восемнадцать лет стал лучшим агентом по продажам в компании по реализации постельного белья и кухонных принадлежностей. Неудивительно, что с таким богатым опытом он умел общаться с людьми и научился понимать, когда люди заинтересованы в его товаре, а когда хотят, чтобы он поскорее ушел.

Изучив жесты и позы клиентов, Алан Пиз написал книгу “Язык телодвижений”, которая разошлась сотней миллионов экземпляров и была переведена на 36 языков. В книге рассказывается о всевозможных жестах, позах, личном пространстве, о разнице в жестах различных культур и о том, как правильно пользоваться этими знаниями.

Когда Алану было одиннадцать лет, он продавал губки, чтобы собрать деньги на строительство клуба для скаутского отряда. Скаут-мастер, мудрый пожилой человек, поделился с Аланом секретом, который был назван Аланом “закон распределения вероятностей”. Это правило дословно:

Удача — это игра, чем дольше играешь, тем больше выигрываешь. И чем больше выигрываешь, тем более успешно играешь.



Читать дальше →
Всего голосов 112: ↑86 и ↓26+60
Комментарии53

Искусственный интеллект как совокупность вопросов

Время на прочтение4 мин
Количество просмотров76K
image
Когда мы рассуждаем о сильном искусственном интеллекте, то мы понимаем, что это не изолированный вопрос, не вещь в себе, а вопрос ответ на который подразумевает объяснение всех явлений, которые связаны с мышлением человека. То есть, ответив на вопрос о природе интеллекта, мы неизбежно должны будем ответить на такие вопросы как:

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

Читать дальше →
Всего голосов 57: ↑39 и ↓18+21
Комментарии55

Информация

В рейтинге
Не участвует
Откуда
Новосибирск, Новосибирская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, Chief Technology Officer (CTO)
Lead