Pull to refresh
26
0
Send message

Нейронные сети и распознавание символов

Reading time7 min
Views125K
В последнее время на Хабре появилось, а также существует много содержательных статей, описывающих работу и принцип понятия “нейронная сеть”, но, к сожалению, как всегда очень мало описания и разбора полученных практических результатов или их не получения. Я думаю, что многим, как и мне удобней, проще и понятней разбираться на реальном примере. Поэтому в данной статье постараюсь описать почти пошаговое решение задачи распознавания букв латинского алфавита + пример для самостоятельного исследования. Распознавание цифр с помощью однослойного персептрона уже сделано, теперь давайте еще разберёмся и научим компьютер распознавать буквы.
Немного желания и можно начинать...
Total votes 92: ↑75 and ↓17+58
Comments57

20-70-10 (не путать с 90-60-90)

Reading time2 min
Views1.8K
Есть в Америке такой консультант (ранее — CEO General Electric) по вопросам управления, зовут его Джек Вэлч (Jack Welch).  И была им придумана, на основании многолетнего опыта работы со многими компаниями, система фундаментальных принципов управления. Один из этих принципов «дифференциация» и о нем мне хотелось бы здесь поговорить.

Если коротко, то суть дифференциации в том, что всех сотрудников следует проранжировать в пропорциях 20, 70 и 10%, объявить и объяснить их статус и после этого:

  • Лучшую «двадцатку» всячески поощрять и промотировать, вознаграждать, поддерживать, рекламировать.
  • Костяк из «семидесятников» развивать, стимулировать морковью того, что они могут влиться в двадцатку.  Развивать, учить, тренинговать их надо активно, а вот поощрять и вознаграждать — умеренно.
  • От «десятки аутсайдеров»-же надо избавляться.


Причем процесс этот надо вести постоянно, прореживая ряды каждый год.

Джэк утверждает, что этот подход намного более честен и справедлив (настолько, насколько управление персоналом может быть «честным» или «справедливым») в отношении «отстающих» — как минимум он дает им шанс найти место работы, где им действительно хорошо, где они могут себя реализовать.  Альтернатива — дожить до седых волос и в 50 лет оказаться на рынке труда, где твои умения и навуке ненужны никому.

Мнения в отношении этого принципа, как и следует ожидать, весьма полярны: этот подход, скорее, либо нравится, либо нет.  Быть где-то по середине сложно.  Обычно, аргумент против выстраиванья всех под распределение 20-70-10 сводится к тому, что после 2-3 лет ни к каким значительным полбожительным изменениям оно не приводит.  Дескать, вы все глубже и глубже вырезаете «семидесятников» — ведь после года-двух никого из 10-процентного балласта быть уже недолжно.

Но это утверждение, очевидно, исходит из того, что никакой новой крови в организацию не вливается.  В частности, Орен Харари говорит:

… forcing the ratings into a bell curve might not be necessary after the fifth year—or, according to the research, certainly not after the tenth. The leader should always track the team carefully, and if it looks like performance is starting to get ragged, or some people are slipping to the bottom, then going back to forced rankings might be the antidote. The key is flexibility in your quest for top performance.
Я полностью согласен с его замечанием на счет гибкости, но мне кажется, что его аргумент выкован в условиях невозможности заменить те 10%, котрые он уволил, или которые ушли сами.  Я сам был в такой ситуации и хорошо понимаю его точку зрения.  Очень часто, особенно когда компания находится под очень сильным давлением со стороны акционеров и аналитиков, увольнение отстающих рассматривается только как способ сокращения издержек, а не как способ повышения производительности труда, эффективности команды.  И, конечно, в такой ситуации насильственное ранжирование приведет к снижению морали, к тому, что будут уходить и «передовики».

Именно поэтому «путь Вэлча» нельзя использовать частями, только весь целиком: Стремление к победе, Четкое представление о целях и ценностях, Честность и открытость, Дифференциация, Гласность общения.

А как думаете вы?
Total votes 9: ↑7 and ↓2+5
Comments9

λ-исчисление. Часть вторая: практика

Reading time5 min
Views47K
Идею, короткий план и ссылки на основные источники для этой статьи мне подал хабраюзер z6Dabrata, за что ему огромнейшее спасибо.

Первая часть дала нам теоретическое представление о том, что есть лямбда-исчисление. В этой статье мы последуем неофициальной його-заповеди «Practice-practice-practice» и увидим его в действии.
Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments1

Руководство по оформлению HTML/CSS кода от Google

Reading time12 min
Views355K

От переводчика


С удовольствием ознакомился с этими рекомендациями и теперь предлагаю вам перевод.

Введение


Это руководство описывает правила для оформления и форматирования HTML и CSS кода. Его цель — повысить качество кода и облегчить совместную работу и поддержку инфраструктуры.

Это относится к рабочим версиям файлов использующих HTML, CSS и GSS

Разрешается использовать любые инструменты для минификации компиляции или обфускации кода, при условии, что общее качество кода будет сохранено.
Читать дальше →
Total votes 295: ↑286 and ↓9+277
Comments168

λ-исчисление. Часть первая: история и теория

Reading time6 min
Views154K
Идею, короткий план и ссылки на основные источники для этой статьи мне подал хабраюзер z6Dabrata, за что ему огромнейшее спасибо.

UPD: в текст внесены некоторые изменения с целью сделать его более понятным. Смысловая составляющая осталась прежней.

Вступление


Возможно, у этой системы найдутся приложения не только
в роли логического исчисления. (Алонзо Чёрч, 1932)


Вообще говоря, лямбда-исчисление не относится к предметам, которые «должен знать каждый уважающий себя программист». Это такая теоретическая штука, изучение которой необходимо, когда вы собираетесь заняться исследованием систем типов или хотите создать свой функциональный язык программирования. Тем не менее, если у вас есть желание разобраться в том, что лежит в основе Haskell, ML и им подобных, «сдвинуть точку сборки» на написание кода или просто расширить свой кругозор, то прошу под кат.
Читать дальше →
Total votes 64: ↑54 and ↓10+44
Comments34

Как появились регулярные выражения

Reading time6 min
Views49K

Небольшое предисловие


Меня всегда интересовала история появлений научных понятий. Перед изучающим новый предмет сначала встает череда безликих определений. Некоторые из них таковыми и остаются, другие привлекают внимание и со временем вырастают в полноценные объекты «картины мира». В качестве недоступного идеала такого стремления можно привести высказывание Литлвуда о Рамануджане:
каждое натуральное число было его лучшим другом

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

Далее будет приведено небольшое исследование подобного рода, объектом которого является понятие регулярного выражения.
Читать дальше →
Total votes 110: ↑104 and ↓6+98
Comments18

Истинное могущество регулярных выражений

Reading time16 min
Views93K
Как частый посетитель тэга PHP на StackOverflow, я очень часто встречаю вопросы о том, как распарсить какие-то конкретные аспекты HTML, используя регулярные выражения. Самый распространённый ответ на это:
«Ты не можешь парсить HTML с помощью регулярных выражений, потому что HTML не является регулярным. Используй XML парсер, и будет тебе счастье»

Это утверждение — в контексте вопроса — находится где-то между сильно вводящим в заблуждение и абсолютно неправильным. Что я хочу попытаться продемонстрировать в этой статье, так это то, насколько могущественны современные регулярные выражения на самом деле.
Читать дальше →
Total votes 182: ↑172 and ↓10+162
Comments39

Роль морфологии в компьютерной лингвистике

Reading time7 min
Views22K

Раньше автоматический перевод работал следующим образом:
  1. Анализировал формы слов в исходном предложении;
  2. Пытался подобрать одну из синтаксических схем исходного языка, в которую подошло бы предложение с найденными формами;
  3. Находил соответствующую синтаксическую схему для целевого языка;
  4. Находил перевод для каждой из словоформ в исходном предложении;
  5. Слова-переводы ставил в форму, необходимую для целевой синтаксической схемы.

Современные технологии пытаются пойти дальше.
Читать дальше →
Total votes 70: ↑68 and ↓2+66
Comments31

Онлайн-редактор музыки

Reading time3 min
Views7.9K


Повествование пойдёт про ненастоящий стартап. Ненастоящий — в основном из-за того, что на создание ушло 7 лет (с перерывами и творческими кризисами). И, прежде чем уйти в ностальгию, сразу ссылка на демо песню.
как же всё это вышло, и какие технологии победили
Total votes 53: ↑47 and ↓6+41
Comments32

Фильтр Калмана

Reading time10 min
Views417K


В интернете, в том числе и на хабре, можно найти много информации про фильтр Калмана. Но тяжело найти легкоперевариваемый вывод самих формул. Без вывода вся эта наука воспринимается как некое шаманство, формулы выглядят как безликий набор символов, а главное, многие простые утверждения, лежащие на поверхности теории, оказываются за пределами понимания. Целью этой статьи будет рассказать об этом фильтре на как можно более доступном языке.
Фильтр Калмана — это мощнейший инструмент фильтрации данных. Основной его принцип состоит в том, что при фильтрации используется информация о физике самого явления. Скажем, если вы фильтруете данные со спидометра машины, то инерционность машины дает вам право воспринимать слишком быстрые скачки скорости как ошибку измерения. Фильтр Калмана интересен тем, что в каком-то смысле, это самый лучший фильтр. Подробнее обсудим ниже, что конкретно означают слова «самый лучший». В конце статьи я покажу, что во многих случаях формулы можно до такой степени упростить, что от них почти ничего и не останется.
Читать дальше →
Total votes 178: ↑173 and ↓5+168
Comments84

Многопоточный сервер на C# за 15 минут

Reading time11 min
Views331K
C# довольно простой и гибкий язык. Вместе с .NET поставляется довольно много уже готовых классов, что делает его еще проще. Настолько, что вполне можно написать простой многопоточный HTTP-сервер для отдачи статического содержимого всего за 15 минут. Можно было бы использовать уже готовый класс HttpListener и управиться еще быстрее, но цель этой статьи — показать, как вообще можно сделать нечто подобное в C#.
Читать дальше →
Total votes 94: ↑77 and ↓17+60
Comments72

Первые несколько миллисекунд HTTPS соединения

Reading time10 min
Views167K
После нескольких часов чтения обзоров, Боб с нетерпением нажал на кнопку перехода к оформлению заказа на галлон цельного молока, и…
Воу, что только что произошло?


Интересно? Прошу под кат
Total votes 242: ↑237 and ↓5+232
Comments36

Коды Рида-Соломона. Простой пример

Reading time9 min
Views119K
Гауссово котэБлагодаря кодам Рида-Соломона можно прочитать компакт-диск с множеством царапин, либо передать информацию в условиях связи с большим количеством помех. В среднем для компакт-диска избыточность кода (т.е. количество дополнительных символов, благодаря которым информацию можно восстанавливать) составляет примерно 25%. Восстановить при этом можно количество данных, равное половине избыточных. Если емкость диска 700 Мб, то, получается, теоретически можно восстановить до 87,5 Мб из 700. При этом нам не обязательно знать, какой именно символ передан с ошибкой. Также стоит отметить, что вместе с кодированием используется перемежевание, когда байты разных блоков перемешиваются в определенном порядке, что в результате позволяет читать диски с обширными повреждениями, локализированными близко друг к другу (например, глубокие царапины), так как после операции, обратной перемежеванию, обширное повреждение оборачивается единичными ошибками во множестве блоков кода, которые поддаются восстановлению.

Давайте возьмем простой пример и попробуем пройти весь путь – от кодирования до получения исходных данных на приемнике. Пусть нам нужно передать кодовое слово С, состоящее из двух чисел – 3 и 1 именно в такой последовательности, т.е. нам нужно передать вектор С=(3,1). Допустим, мы хотим исправить максимум две ошибки, не зная точно, где они могут появиться. Для этого нужно взять 2*2=4 избыточных символа. Запишем их нулями в нашем слове, т.е. С теперь равно (3,1,0,0,0,0). Далее необходимо немного разобраться с математическими особенностями.

Поля Галуа


Многие знают романтическую историю о молодом человеке, который прожил всего 20 лет и однажды ночью написал свою математическую теорию, а утром был убит на дуэли. Это Эварист Галуа. Также он несколько раз пытался поступить в университеты, однако экзаменаторы не понимали его решений, и он проваливал экзамены. Приходилось ему учиться самостоятельно. Ни Гаусс, ни Пуассон, которым он послал свои работы, также не поняли их, однако его теория отлично пригодилась в 60-х годах ХХ-го века, и активно используется в наше время как для теоретических вычислений в новых разделах математики, так и на практике.
Читать дальше →
Total votes 94: ↑90 and ↓4+86
Comments32

Почему с нормальным распределением не все нормально

Reading time7 min
Views52K
image

Нормальное распределение (распределение Гаусса) всегда играло центральную роль в теории вероятностей, так как возникает очень часто как результат воздействия множества факторов, вклад любого одного из которых ничтожен. Центральная предельная теорема (ЦПТ), находит применение фактически во всех прикладных науках, делая аппарат статистики универсальным. Однако, весьма часты случаи, когда ее применение невозможно, а исследователи пытаются всячески организовать подгонку результатов под гауссиану. Вот про альтернативный подход в случае влияния на распределение множества факторов я сейчас и расскажу.
Читать дальше →
Total votes 78: ↑72 and ↓6+66
Comments31

Основы архитектуры IIS, или запросопровод для ASP.NET

Reading time20 min
Views205K



В прошлом году мне пришлось отсобеседовать около 10-15 кандидатов на должность веб-программиста на ASP.NET средней квалификации. В качестве вопросов «на засыпку», или «со звёздочкой», я просил рассказать, что происходит с HTTP-запросом от момента его поступления на 80-й порт сервера до передачи управления коду aspx-страницы. Статистика была удручающей: ни один из кандидатов не смог выдать хоть что-нибудь внятное. И этому есть своё объяснение: ни в MSDN с technet, ни на специализированном ресурсе iis.net, ни в книгах a-la «ASP.NET для профессионалов», ни в блогах данной теме не уделяется должного внимания – информацию приходится собирать чуть ли не по крупицам. Я даже знаю людей, которые решили написать свой собственный веб-сервер (Игорь, Георгий, привет!), чтобы не разбираться в работе IIS. Единственная толковая статья – «Introduction to IIS Architectures» Риган Темплин (Reagan Templin). Но и она остаётся на периферии интересов аспнетчиков.

Хотя мне лично уже не так интересны чисто технические вопросы, я решил собрать в кучу свой накопленный опыт, раскопать на просторах Сети любопытные детали и передать сие сакральное знание массам, пока оно ещё не устарело. Сразу оговорюсь, что статья ориентирована в большей степени на IIS 7.x, иногда будут ответвления про 6-ку. С 8-й версией в работе не сталкивался, поэтому решил обойти её в этой статье стороной. Но, уверен, читатель без труда разберётся с восьмёркой, освоив изложенный ниже материал.
Познать...
Total votes 71: ↑59 and ↓12+47
Comments9

Каверзные сетевые вопросы

Reading time14 min
Views222K
Давно была идея собрать воедино интересные вопросы, касающиеся сетей.

Объединяет их то, что все они довольно простые, но мы подчас о них не задумываемся (я во всяком случае о них не задумывался).
В общем я их собрал, подбил, нашёл ответы.
Итак, блиц опрос:

Начнём с самых низких уровней и с самых простых вопросов



В1. Почему для витой пары выбран такой странный порядок: синяя пара на 4-5, разрывая зелёную, которая на 3, 6?




Ответ
О1: Сделано это в угоду двухконтактному телефонному разъёму. Таким образом, например, в патч-панель можно вставить как телефонный кабель, так и витую пару.
Можно даже через один кабель вывести и сеть и телефонию, но я вам этого не говорил!

habrahabr.ru/post/158177.


В2. В стандарте Ethernet между кадрами всегда имеется промежуток, называемый IFG (Inter Frame Gap) длиною 12 байтов. Для чего он нужен, и почему он присутствует в современных стандартах?

Читать дальше →
Total votes 166: ↑153 and ↓13+140
Comments209

Генератор криптарифмов

Reading time6 min
Views16K
В написанной на днях статье Вернулся невод с тиной морскою, я дал ссылку на частотный словарь Википедии. Количество скачиваний на порядки превзошло все мои ожидания. Я почувствавал огромное духовное родство с читателями Хабра. Одна часть скачавших (как и я!) любит всячески возиться со словами и словарями, а вторая часть (как и я!), увидев на просторах сети интересный артефакт, тут же хватает его и тащит к себе в гнездо, а что с ним делать — потом разберёмся!

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

А для второй части, для тех, кто скачал словарь, а теперь мучительно думает, что делать со свалившимся счастьем, я хочу написать несколько статей. Собственно с этой и начну.
Читать дальше →
Total votes 41: ↑41 and ↓0+41
Comments10

Машина Тьюринга на формулах Excel

Reading time3 min
Views35K
В статье кратко рассказывается о машине Тьюринга и приводится ее реализация на Exсel. Полезна статья будет и тем, кто хочет познакомиться с машиной Тьюринга, и тем, кто хочет повысить свой кругозор в функционале Excel.
Читать дальше →
Total votes 40: ↑36 and ↓4+32
Comments9

Скрытые цепи Маркова, алгоритм Баума-Велша

Reading time4 min
Views24K
Скрытые модели/цепи Маркова одни из подходов к представлению данных. Мне очень понравилось как обобщается множество таких подходов в этой статье.

В продолжение же моей предыдущей статьи описания скрытых моделей Маркова, задамся вопросом: откуда взять хорошую модель? Ответ достаточно стандартен, взять неплохую модель и сделать из нее хорошую.

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

Читать дальше →
Total votes 36: ↑36 and ↓0+36
Comments4

Создаем резюме на LaTeX — как и зачем?

Reading time5 min
Views89K
Многие документы я подготавливаю в LaTeX, а не в Word. И к моменту, когда я определяюсь со следующим местом работы, я подвожу итоги сделанного, и, уж чтобы не пропадало, фиксирую их в документах, составляющих каркас моего CV. По моему личному убеждению, тщательность в создании документов для будущего работодателя нужна не столько для коммуникаций с «эйчарами», сколько для осмысления дороги, по которой идешь, и направления, в котором решаешь двигаться дальше. Итак, почему я для резюме выбрал LaTeX?

Читать дальше →
Total votes 125: ↑99 and ↓26+73
Comments71
1

Information

Rating
Does not participate
Location
Россия
Registered
Activity