Разница между 1.70 и текущей версией КаскадХаара.
@@ -1,22 +1,45 @@
-- Каскад Хаара
+= Каскад Хаара
+
+
+- Гильза
+
+	* Допустим, у нас есть один миллион изображений: полмиллиона изборажений мотоциклов и полмиллиона изображений не-мотоциклов (это называется ''обучающая выборка''). В реальности, кстати, такая чудная ситуация (доля мотоциклов равно доле не-мотоциклов) бывает чрезвычайно редко.
+	* Мы хотим научить компьютер отличать изображения мотоциклов от изображений не-мотоциклов. Для этого мы проводим обучение. Сначала мы «рассказываем» компьютеру, что является мотоциклом, а что не является. Это называется ''обучение с учителем'', если компьютер неким образом сам смог бы научиться распознавать мотоциклы от не-мотоциклов без внешней помощи, то это было бы ''обучение без учителя'': подробнее смотри статью: ...
+	* После обучения бы даём компьютеру миллионпервое изображение, а компьютер выдаёт 1 («ДА», «ИСТИНА», «это мотоцикл»), если это изображение мотоцикла, и -1 («НЕТ», «ЛОЖЬ», «это не-мотоцикл»), если это изображение не-мотоцикла. В реальной практике мы даём не одно изображение, а, допустим, сто тысяч (эти сто тысяч называются ''тестовой выборкой''). По тому, как компьютер научился разделять мотоциклы от не-мотоциклов, мы судим о качестве нашего обучения. Для этого чаще всего используются следующие показатели: 
+		* доля верно определённых мотоциклов (на изображении мотоцикл, компьютер определил его как мотоцикл: TP — True Positive), 
+		* доля верно определённых не-мотциклов (на изображении не-мотоцикл, компьютер определел его не-мотоцикл: TN — True Negative), 
+		* доля неверно определённых не-мотоциклов (на изображении не-мотоцикл, но компьютер ошибся и определил его  как мотоцикл: FP — False Positive): например, мы не научили различать мотоциклы и велосипеды,
+		* доля неверно определённых мотоциклов (на изображении мотоцикл, компьютер его определил как не-мотоцикл: FN — False Negative): например, мы не научили различать мотоциклы с человеком на нём, обучали только по мотоциклам без водителя.
+	* Таким образом, компьютер проводит разделение поступающего множество на два класса, или, говоря иначе, выполняет задачу ''классификации''.
+	* В данной статье рассматривается метод обучения с учителем, называемый «каскады Хаара».
+	* Потом, в режиме понимания слушателем, проводится описание алгоритма.
+----
 
 Формально говоря, каскад Хаара выполняет задачу
 ''классификации'' ‒ разделения множества объектов на классы. В нашем случае
-объекты - это входные изображения. А класса всего два: искомый объект и все
+объекты — это входные изображения. А класса всего два: искомый объект и все
 остальное. Говоря проще, каскад Хаара принимает на вход изображение и выдает
 один из двух ответов: "да" и "нет".
 
 Что бы каскад Хаара определял, есть ли искомый объект на входном изображении,
-его нужно ''обучить''. Тоесть, задать ему такую структуру, что бы он выдавал
+его нужно ''обучить''. То есть, задать ему такую структуру, что бы он выдавал
 положительный результат для изображений с искомым объектом, и отрицательный в
 другом случае. В данном случае используется обучение с учителем, т.е. имеется
 обучающая выборка (набор разных изображений) и данные, указывающие, какие из
 этих изображений содержат искомый объект. Обучение может занимать очень много
 времени: иногда даже по несколько дней.
 
+----
+	* «В данном случае используется обучение с учителем»: читатель вообще может не понимать, что такое обучение с учителем (и не знать, чем оно отличается от обучения без учителя). В  одном научном журнале по точных наукам на фразу «Это алгоритм обучения без учителя» мне ответили: «Мы не публикуем статьи по педагогике». -- АтрашкевичАндрей
+----
+
 Правильно обученный каскад Хаара может достаточно быстро классифицировать
 изображения и имеет неплохую устойчивость к шумам и другим отклонениям.
 
+----
+	* «имеет неплохую устойчивость к шумам и другим отклонениям»: неплохую по отношению к чему? что есть шум? что за отклонения? -- АтрашкевичАндрей
+----
+
 -- Признаки Хаара.
 Признак Хаара является набором прямоугольных областей изображения, примыкающих
 друг к другу и разделенных на две группы. Возможных признаков Хаара огромное
@@ -172,7 +195,7 @@
 пикселей в прямоугольниках $$A$$, $$B$$, $$C$$ и $$D$$. Тогда сумма значений пикселей
 в прямоугольнике $$D$$ будет равна $$d - c - b + a$$.
 
--- ''''''Алгоритм AdaBoost''''''.
+- ''''''Алгоритм AdaBoost''''''.
 
 Для выбора признаков, лучше всего классифицирующих изображения используется
 алгоритм ''''''''AdaBoost'''''''' (adaptive boosting). Этот алгоритм построен на идее,
@@ -180,6 +203,10 @@
 классификаторами'') можно составить, новый способ, выполняющий эту задачу
 намного эффективнее.
 
+----
+	* Основная идея данного алгоритма состоит в следующем: из большого числа простых способов классификации (т. н. ''слабых классификаторов'') можно составить новый способ, более эффективный чем каждая из его составляющих по отдельности.
+----
+
 В данном случае слабый классификатор ‒ это функция, которая принимает на вход
 изображение, вычисляет значение соответствующего ей признака Хаара для этого
 изображения и сравнивет это значение с порогом, возвращая либо $$0$$, либо $$1$$.
@@ -188,7 +215,7 @@
 {h sub i}(x) = left {
 lpile {
 1, {p sub i}{f sub i}(x) < {p sub i}{theta sub i}
-above 0, otherwise
+above 0, ~ roman "otherwise"
 }
 right ""
 ~,
@@ -216,53 +243,64 @@
 классифицированные изображения начинают сильнее влиять на значение ошибки.
 Ниже приведен полный алгоритм:
 
---- Входные данные:
+-- Входные данные:
 	* $$h sub i$$ ‒ $$i$$-й слабый классификатор
 	* $$E sub i$$ ‒ $$i$$-й обучающий пример.
-	* $$y sub i$$ ‒ $$0$$, если $$i$$-й обучающий пример отрицательный, и $$1$$, если
-	* $$i$$-й обучающий пример положительный.
+	* $$y sub i$$ ‒ $$0$$, если $$i$$-й обучающий пример отрицательный, и $$1$$, если $$i$$-й обучающий пример положительный.
 	* $$n$$ ‒ количество обучающих примеров.
 
---- Переменные:
+-- Переменные:
 	* $$w sub i$$ ‒ вес, соответствующий $$i$$-му обучающему примеру.
+	* $$m$$ ‒ число отрицательных примеров.
+	* $$l$$ ‒ число положительных примеров.
 	* $$epsilon sub i$$ ‒ ошибка $$i$$-го слабого классификатора.
 	* $${h dot} sub i$$ ‒ слабый классификатор, выбранный на $$i$$-й итерации.
 	* $$epsilon dot$$ ‒ минимальное значение ошибки слабого классификатора на текущей итерации.
 	* $$beta sub i$$ ‒ минимальное значение ошибки слабого классификатора на $$i$$-й итерации, представленное в другой форме (для оптимизации вычислений и экономии места).
 
---- Алгоритм:
-	1 Инициализировать веса обучающих примеров: 
+-- Алгоритм:
+	* Инициализировать веса обучающих примеров: 
 %EQ
 left {
 lpile {
-w sub i = size -2 {1 over 2m}, если~y sub i = 0
-above w sub i = size -2 {1 over 2l}, если~y sub i = 1
+w sub i = size -2 {1 over 2m}, if~y sub i = 0
+above w sub i = size -2 {1 over 2l}, if~y sub i = 1
 }
 right ""
 ~,
 %EN
-где $$m$$ ‒ число отрицательных примеров, а $$l$$ ‒ число положительных примеров.
-	1 Для $$t = 1, .., T$$:
+	* Для $$t = 1, .., T$$:
 		1 Нормализовать веса обучающих примеров:
 %EQ
 w sub i = size -2 {{w sub i} over {sum from {j^=^1} to n {w sub j}}}
 %EN
-		1 Вычислить значение ошибки для каждого слабого классификатора\[one]:
+		1 Вычислить значение ошибки для каждого слабого классификатора:
 %EQ
 epsilon sub j = sum from k to n {{w sub k}|{h sub j}({E sub k}) - {y sub k}}|
 %EN
 		1 Hайти классификатор с минимальной ошибкой:
 %EQ
 {epsilon dot} = min {epsilon sub j}
-,~~
+~,~~~
 {{h dot} sub t} = h sub j
 %EN
 		1 Обновить веса обучающих примеров:
 %EQ
 beta sub t = size -2 {{{epsilon dot}} over {(1 - {epsilon dot})}}
-,~~
+~,~~~
 w sub i = {w sub i} {beta sub t} sup {1^-^{|{{h dot} sub t}({E sub i})^-^{y sub i}}|}
 %EN
+	* Итоговый конечный классификатор: 
+%EQ
+H(x) = left { lpile {
+1, ~ sum from {t = 1} to T {log({size -2 {1 over {beta sub t}}}) {h dot} sub t}({E sub i})
+>= sum from {t = 1} to T {log({size -2 {1 over {beta sub t}}})}
+above
+0, ~ roman "otherwise"
+}
+right ""
+%EN
 
+- Каскад классификаторов.
 
 # КатегорияМашинноеОбучение