Upload
igor-kleiner
View
1.004
Download
6
Embed Size (px)
Citation preview
Добро пожаловать
http://geekbrains.ru/events/129
Добро пожаловать
http://geekbrains.ru/events/129
Будем знакомы
Анекдот
0 Ералаш, выпуск 45 серия 2, “На всякий случай”
http://goo.gl/DlfquL
Анекдот
0 Ералаш, выпуск 45 серия 2, “На всякий случай”
http://goo.gl/DlfquL
Анекдот
0 Ералаш, выпуск 45 серия 2, “На всякий случай”
http://goo.gl/DlfquL
Анекдот
0 Ералаш, выпуск 45 серия 2, “На всякий случай”
http://goo.gl/DlfquL
Анекдот
0 Ералаш, выпуск 45 серия 2, “На всякий случай”
http://goo.gl/DlfquL
Анекдот
0 Ералаш, выпуск 45 серия 2, “На всякий случай”
http://goo.gl/DlfquL
Что читал мальчик?
Что читал мальчик?
Цель нашей встречи
Цель нашей встречи
0 Совершить путешествие в страну Теории Вероятностей
Цель нашей встречи
0 Совершить путешествие в страну Теории Вероятностей
Цель нашей встречи
0 Понять зачем и почему теория вероятностей может пригодиться разработчику или программисту
Цель нашей встречи
0 Узнать много нового интересного и полезного и хорошо провести время
Цель нашей встречи
0 Разобраться как продолжить знакомство с теорией вероятностей самостоятельно
statistics for medicine
План 0 Монте Карло – Ленин и казино
0 Смерть в колыбели
0 Страна потерянных носков
0 Бесконечный лабиринт
0 Восьмимерные влюбленные программисты, блуждающие в одиночестве
0 Как Google распознает изображения
0 Теория вероятностей при прохождении собеседований
0 Как изучить теорию вероятностей
ГОТОВЫ?
Метод Монте Карло
0 Предположим мы хотим найти площадь нижнего треугольника
Метод Монте Карло
0 Предположим мы хотим найти площадь нижнего треугольника
0 Бросим в квадрат большое количество случайных точек ( x= rand(uniform,100,2d) )
Метод Монте Карло
0 Предположим мы хотим найти площадь нижнего треугольника
0 Бросим в квадрат большое количество случайных точек ( x= rand(uniform,100,2d) )
0 Сколько в среднем точек попадет в нижний треугольник?
0 Чему равна площадь нижнего треугольника?
Метод Монте Карло
0 Предположим мы хотим найти площадь нижнего треугольника
0 Бросим в квадрат большое количество случайных точек ( x= rand(uniform,100,2d) )
0 Сколько в среднем точек попадет в нижний треугольник? Половина точек
0 Чему равна площадь нижнего треугольника? 0.5
Метод Монте Карло
0 Предположим мы хотим найти площадь нижнего треугольника
0 Бросим в квадрат большое количество случайных точек ( x= rand(uniform,100,2d) )
0 Сколько в среднем точек попадет в нижний треугольник? Половина точек
0 Чему равна площадь нижнего треугольника? 0.5
Метод Монте Карло
0 Пропорция точек попавших в заданную фигуру в среднем будет равна площади данной фигуры вписанной в единичный квадрат
Метод Монте Карло 0 Пропорция точек попавших в заданную фигуру в
среднем будет равна (сходится по вероятности) площади данной фигуры вписанной в единичный квадрат
0 Вывод: можно вычислить площадь треугольника по формуле, а можно с помощью случайных чисел
И ВСЕ?
Метод Монте Карло
Как найти площадь Ленина
Как вычислить число 𝜋 с помощью иглы
Как найти площадь Ленина с помощью иглы
Как найти площадь Ленина с помощью программиста 0 Дайте мне: компьютер и Ленина
Как найти площадь Ленина с помощью программиста 0 Дайте мне: компьютер и Ленина
0 Алгоритм:
0 Генерируем большое количество случайных точек
0 Вычисляем пропорцию точек попавших в объект
Метод Монте Карло - итоги 0 Позволяет с помощью теории вероятностей
(симуляции) вычислять площадь различных объектов
0 Позволяет вычислять площадь\объем многомерных объектов
0 Прост и понятен, а также легок в реализации
Дайте мне точку опоры
Дайте мне кубики и я вычислю все что угодно
Метод Монте Карло
Теория вероятностей в суде
0 Может ли незнание теории вероятностей довести до тюрьмы?
0 Да
0 Нет
Теория вероятностей в суде
0 Смерть в колыбели – синдром внезапной детской смерти
Теория вероятностей в суде
0 Смерть в колыбели – синдром внезапной детской смерти
Теория вероятностей в суде
0 Смерть в колыбели – синдром внезапной детской смерти
0 В журнале Science рассказывается о деле женщины, оба ребенка которой умерли от СВДС
Теория вероятностей в суде 0 Смерть в колыбели – синдром внезапной детской
смерти
0 В журнале Science рассказывается о деле женщины, оба ребенка которой умерли от СВДС
0 Врач - эксперт, утверждал, что вероятность ребенка умереть от СВДС = 1/8500, поэтому вероятность двух детей умереть от СВДС =
Теория вероятностей в суде 0 Смерть в колыбели – синдром внезапной детской
смерти
0 В журнале Science рассказывается о деле женщины, оба ребенка которой умерли от СВДС
0 Врач - эксперт, утверждал, что вероятность ребенка умереть от СВДС = 1/8500, поэтому вероятность двух детей умереть от СВДС =1/8500* 1/8500=0.00000001
Теория вероятностей в суде
0 Смерть в колыбели – синдром внезапной детской смерти
0 В журнале Science рассказывается о деле женщины, оба ребенка которой умерли от СВДС
0 На основании утверждений врача мать была приговорена к тюремному сроку
Теория вероятностей в суде
0 Смерть в колыбели – синдром внезапной детской смерти
0 В журнале Science рассказывается о деле женщины, оба ребенка которой умерли от СВДС
0 На основании утверждений врача мать была приговорена к тюремному сроку
Теория вероятностей в суде
0 В чем ошибся врач?
Теория вероятностей в суде 0 В чем ошибся врач?
0 Врач - эксперт, утверждал, что вероятность ребенка умереть от СВДС = 1/8500, поэтому вероятность двух детей умереть от СВДС =1/8500* 1/8500=0.00000001
0 Перемножаются лишь вероятности независимых событий, а дети одной женщины (общие гены), проживающие в одном городе , в одно время это зависимые события
Теория вероятностей в суде 0 В чем ошибся врач?
0 Врач - эксперт, утверждал, что вероятность ребенка умереть от СВДС = 1/8500, поэтому вероятность двух детей умереть от СВДС =1/8500* 1/8500=0.00000001
0 Перемножаются лишь вероятности независимых событий, а дети одной женщины (общие гены), проживающие в одном городе , в одно время это зависимые события
Теория вероятностей и страна перепутанных носков
Теория вероятностей и страна перепутанных носков
0 После стирки в машинке n пар носков.
0 Программист Вася достает носки по одной штуке пока не получится пара
Теория вероятностей и страна перепутанных носков
0 После стирки в машинке n пар носков.
0 Вася программист достает носки по одной штуке пока не получится пара
0 while (нет носок одной пары) 0 {
Бери еще один носок из машинки
0 }
Теория вероятностей и страна перепутанных носков
0 После стирки в машинке n пар носков.
0 Вася программист, достает носки по одной штуке пока не получится пара
0 Сколько в среднем нужно Васе извлечь носков? Успеет ли Вася на свидание?
Теория вероятностей и страна перепутанных носков
0 После стирки в машинке n пар носков.
0 Вася программист, достает носки по одной штуке пока не получится пара
0 Сколько в среднем нужно Васе извлечь носков? Успеет ли Вася на свидание?
0 В среднем нужно извлечь носков
Теория вероятностей и страна перепутанных носков
0 После стирки в машинке n пар носков.
0 Вася программист, достает носки по одной штуке пока не получится пара
0 Сколько в среднем нужно Васе извлечь носков? Успеет ли Вася на свидание?
0 В среднем нужно извлечь носков
Теория вероятностей и страна перепутанных носков
0 Сколько в среднем нужно Васе извлечь носков? Успеет ли Вася на свидание?
0 В среднем нужно извлечь носков
n попытки
5 3,963326
10 5,604989
20 7,926651
50 12,53314
Теория вероятностей и страна перепутанных носков
0 Сколько в среднем нужно Васе извлечь носков? Успеет ли Вася на свидание?
0 В среднем нужно извлечь носков
n попытки
5 3,963326
10 5,604989
20 7,926651
50 12,53314
Теория вероятностей и страна перепутанных носков
0 После стирки в машинке n пар носков
0 Сколько в среднем нужно Васе извлечь носков?
0 В среднем нужно извлечь носков
0 Обратная задача
Теория вероятностей и страна перепутанных носков
0 После стирки в машинке n пар носков
0 Сколько в среднем нужно Васе извлечь носков?
0 В среднем нужно извлечь носков
0 Обратная задача:
0 Вася извлек 13 носков пока не нашел пару
0 Сколько пар носков в машинке?
Теория вероятностей и страна перепутанных носков
0 После стирки в машинке n пар носков
0 Сколько в среднем нужно Васе извлечь носков?
0 В среднем нужно извлечь носков
0 Обратная задача:
0 Вася извлек 13 носков пока не нашел пару
0 Сколько пар носков в машинке? = 13
Теория вероятностей и страна перепутанных носков
0 После стирки в машинке n пар носков
0 Сколько в среднем нужно Васе извлечь носков?
0 В среднем нужно извлечь носков
0 Обратная задача:
0 Вася извлек 13 носков пока не нашел пару
0 Сколько пар носков в машинке? = 13, n=14
Теория вероятностей и страна перепутанных носков
0 Обратная задача:
0 Вася извлек 13 носков пока не нашел пару
0 Сколько пар носков в машинке? = 13, n=14
0 Математическая статистика – анализ модели с помощью наблюдений (выборка)
Теория вероятностей и страна перепутанных носков
0 Обратная задача:
0 Вася извлек 13 носков пока не нашел пару
0 Сколько пар носков в машинке? = 13, n=14
0 Математическая статистика – анализ модели с помощью наблюдений (выборка)
0 Теория вероятностей – модель дана, предсказание результатов наблюдений (вероятностей)
Эксперимент – прямой эфир
Теория вероятностей и алгоритмы
0 Предположим, что вы находитесь в лабиринте в котором 10^300 комнат
Теория вероятностей и алгоритмы
0 Предположим, что вы находитесь в лабиринте в котором 10^300 комнат
0 Наша цель – обойти все комнаты лабиринта
0 Т.е. в какой-то момент мы должны остановиться и сказать - «все лабиринт пройден»
Теория вероятностей и алгоритмы
0 Предположим, что вы находитесь в лабиринте в котором 10^300 комнат
0 Наша цель – обойти все комнаты лабиринта
0 Т.е. в какой-то момент мы должны остановиться и сказать - «все лабиринт пройден»
0 Правило левой руки?
Теория вероятностей и алгоритмы
0 Предположим, что вы находитесь в лабиринте в котором 10^300 комнат
0 Наша цель – обойти все комнаты лабиринта
0 Т.е. в какой-то момент мы должны остановиться и сказать - «все лабиринт пройден»
0 Правило левой руки? не всегда работает
Теория вероятностей и алгоритмы
0 Предположим, что вы находитесь в лабиринте в котором 10^300 комнат
0 Наша цель – обойти все комнаты лабиринта
0 Т.е. в какой-то момент мы должны остановиться и сказать - «все лабиринт пройден»
0 Если можно помечать краской комнаты где мы были то задача легко решается BFS, DFS
Теория вероятностей и алгоритмы
0 Задача про лабиринт на языке графов – имеется ненаправленный граф, в котором очень много вершин (10^300). Наша цель обойти все вершины графа
Теория вероятностей и алгоритмы
0 Задача про лабиринт на языке графов – имеется ненаправленный граф, в котором очень много вершин (10^300). Наша цель обойти все вершины графа
0 Решение: BFS, DFS – если можно красить вершины, то задача легко решаема
Теория вероятностей и алгоритмы
0 Задача про лабиринт на языке графов – имеется ненаправленный граф, в котором очень много вершин (10^300). Наша цель обойти все вершины графа
0 Сколько нужно памяти для наивного решения? BFS. DFS - 10^300 бит – нужно отмечать все комнаты где мы были
Теория вероятностей и алгоритмы
0 Задача про лабиринт на языке графов – имеется ненаправленный граф, в котором очень много вершин (10^300). Наша цель обойти все вершины графа
0 Сколько нужно памяти для наивного решения? BFS. DFS - 10^300 бит – нужно отмечать все комнаты где мы были
Столько памяти не существует на всей планете
Теория вероятностей и алгоритмы
0 Задача про лабиринт на языке графов – имеется ненаправленный граф, в котором очень много вершин (10^300). Наша цель обойти все вершины графа
0 Сколько нужно памяти для наивного решения? BFS. DFS - 10^300 бит – нужно отмечать все комнаты где мы были
Столько памяти не существует на всей планете
Как же быть???
Теория вероятностей и алгоритмы
Как же быть???
Нам нужно обойти гигантский граф (лабиринт)
Мы не можем помечать вершины (комнаты) в которых были?
Теория вероятностей и алгоритмы
Как же быть??? Нам нужно обойти гигантский граф (лабиринт)
Мы не можем помечать вершины (комнаты) в которых были?
Задача нерешаема - можно идти домой?
Теория вероятностей и алгоритмы
Как же быть??? Нам нужно обойти гигантский граф (лабиринт)
Мы не можем помечать вершины (комнаты) в которых были?
Задача нерешаема - можно идти домой?
Теория вероятностей – на помощь!!!
Теория вероятностей и алгоритмы
Нам нужно обойти гигантский граф (лабиринт)
обозначим через n – количество комнат
for ( i=1 to 3*n^3*log(n)) {
выбери случайно одну из соседних комнат и иди туда
}
print («мы были во всех комнатах лабиринта почти наверняка»)
Теория вероятностей и алгоритмы
for ( i=1 to 3*n^3*log(n)) {
выбери случайно одну из соседних комнат и иди туда
}
print («мы были во всех комнатах лабиринта почти наверняка»)
Алгоритм понятен?
Теория вероятностей и алгоритмы
for ( i=1 to 3*n^3*log(n)) {
выбери случайно одну из соседних комнат и иди туда
}
print («мы были во всех комнатах лабиринта почти наверняка»)
Алгоритм понятен? да.
Сколько требуется памяти?
Теория вероятностей и алгоритмы
for ( i=1 to 3*n^3*log(n)) {
выбери случайно одну из соседних комнат и иди туда
}
print («мы были во всех комнатах лабиринта почти наверняка»)
Алгоритм понятен? да.
Сколько требуется памяти? Нужно хранить i.
Теория вероятностей и алгоритмы
for ( i=1 to 3*n^3*log(n)) {
выбери случайно одну из соседних комнат и иди туда
}
print («мы были во всех комнатах лабиринта почти наверняка»)
Алгоритм понятен? да.
Сколько требуется памяти? Нужно хранить i.
log(3*n^3*log(n)) = const* log(n)= const *300* log(10) < 20000 бит
Теория вероятностей и алгоритмы
for ( i=1 to 3*n^3*log(n)) {
выбери случайно одну из соседних комнат и иди туда
}
print («мы были во всех комнатах лабиринта почти наверняка»)
Алгоритм понятен? да.
Сколько требуется памяти? Нужно хранить i.
log(3*n^3*log(n)) = const* log(n)= const *300* log(10) < 20000 бит
вместо 10^300 бит получили 20000 бит
Теория вероятностей и алгоритмы
for ( i=1 to 3*n^3*log(n)) {
выбери случайно одну из соседних комнат и иди туда
}
print («мы были во всех комнатах лабиринта почти наверняка»)
Вопросы:
Почему алгоритмы работает?
Теория вероятностей и алгоритмы
for ( i=1 to 3*n^3*log(n)) {
выбери случайно одну из соседних комнат и иди туда
}
print («мы были во всех комнатах лабиринта почти наверняка»)
Вопросы:
Почему алгоритмы работает? Теория случайных блужданий. Случайные графы.
Теория вероятностей и алгоритмы
for ( i=1 to 3*n^3*log(n)) {
выбери случайно одну из соседних комнат и иди туда
}
print («мы были во всех комнатах лабиринта почти наверняка»)
Вопросы:
Может ли алгоритм ошибиться?
Теория вероятностей и алгоритмы
for ( i=1 to 3*n^3*log(n)) {
выбери случайно одну из соседних комнат и иди туда
}
print («мы были во всех комнатах лабиринта почти наверняка»)
Вопросы:
Может ли алгоритм ошибиться? Может, но вероятность ошибки ничтожна мала
Теория вероятностей и алгоритмы
for ( i=1 to 3*n^3*log(n)) {
выбери случайно одну из соседних комнат и иди туда
}
print («мы были во всех комнатах лабиринта почти наверняка»)
Вопросы:
Можно ли решить задачу без теории вероятностей?
Теория вероятностей и алгоритмы
Вопросы:
Можно ли решить задачу без теории вероятностей?
Да легко! http://research.microsoft.com/pubs/148550/sl.pdf
Теория вероятностей и алгоритмы
Вопросы:
Можно ли решить задачу без теории вероятностей?
Да легко! http://research.microsoft.com/pubs/148550/sl.pdf
Теория вероятностей и алгоритмы
Вопросы:
Можно ли решить задачу без теории вероятностей?
Да легко! http://research.microsoft.com/pubs/148550/sl.pdf
Теория вероятностей и алгоритмы
Одна задача – два решения:
1) Вероятностное, прозрачное доступное для понимания и реализации
2) Невероятностное, сложное (20 страниц), сложная реализация -
Теория вероятностей и алгоритмы
Одна задача – два решения:
1) Вероятностное, прозрачное доступное для понимания и реализации
2) Невероятностное, сложное (20 страниц), сложная реализация – галактический алгоритм
Влюбленные одномерные программисты
Случайное блуждание на прямой
0 На каждом шаге, одновременно, каждый из программистов выбирает случайно направление и делает шаг влево или вправо с вероятностями 0.5, 0.5
Влюбленные одномерные программисты
0 На каждом шаге, одновременно, каждый из программистов выбирает случайно направление и делает шаг влево или вправо с вероятностями 0.5, 0.5
0 Встретятся ли программисты когда-нибудь?
Влюбленные одномерные программисты
0 На каждом шаге, одновременно, каждый из программистов выбирает случайно направление и делает шаг влево или вправо с вероятностями 0.5, 0.5
0 Встретятся ли программисты когда-нибудь?
0 Хорошая новость:
0 Плохая новость:
Влюбленные одномерные программисты
0 На каждом шаге, одновременно, каждый из программистов выбирает случайно направление и делает шаг влево или вправо с вероятностями 0.5, 0.5
0 Встретятся ли программисты когда-нибудь?
0 Хорошая новость: программисты встретятся с p=1
0 Плохая новость:
Влюбленные одномерные программисты
0 На каждом шаге, одновременно, каждый из программистов выбирает случайно направление и делает шаг влево или вправо с вероятностями 0.5, 0.5
0 Встретятся ли программисты когда-нибудь?
0 Хорошая новость: программисты встретятся с p=1
0 Плохая новость: среднее время до встречи равно 00
Влюбленные одномерные программисты
0 На каждом шаге, одновременно, каждый из программистов выбирает случайно направление и делает шаг влево или вправо с вероятностями 0.5, 0.5
0 Встретятся ли программисты когда-нибудь?
0 Хорошая новость: программисты встретятся с p=1
0 Плохая новость: среднее время до встречи равно 00
0 Вывод: не стоит случайно блуждать в поисках любви
Влюбленные двумерные программисты
Встретятся ли программисты когда-нибудь? Хорошая новость: программисты встретятся с p=1 Плохая новость: среднее время до встречи равно 00 Вывод: не стоит случайно блуждать в поисках любви
Влюбленные многомерные программисты
Влюбленные многомерные программисты
0 Чем больше размерность пространства тем меньше вероятность встречи
0 Начиная с размерности 3, вероятность встречи строго меньше 1.
0 Вывод: многомерные существа очень одиноки
«трансцендентное одиночество» рассказ
Шекли «Обмен разумов»
Теория вероятностей и анализ изображений
Поиск похожих изображений
0 Как определить похожесть?
0 текстура
0 сюжет
0 цвета
0 Начнем с более простой задачи
Теория вероятностей и анализ изображений
Теория вероятностей и анализ изображений
Теория вероятностей и анализ изображений
Теория вероятностей и анализ изображений
Теория вероятностей и анализ изображений
Теория вероятностей и анализ изображений
Теория вероятностей и анализ изображений
0 Наивный алгоритм – беда!
0 Можно ли быстрее?
Теория вероятностей и анализ изображений
0 Наивный алгоритм – беда!
0 Можно ли быстрее?
0 Теория вероятностей – на помощь!!!
Теория вероятностей и анализ изображений
0 Вероятностное решение – случайные пиксели + умный анализ, достаточно 200 000 операций вместо 1 500 000 000 000 000 операций
Теория вероятностей и анализ изображений
0 Вероятностное решение – случайные пиксели + умный анализ, достаточно 200 000 операций вместо 1 500 000 000 000 000 операций
Теория вероятностей на собеседовании
0 Иногда на интервью задают задания, решения которых подразумевает знание теории вероятностей 0 Задача о купонах
0 Тасование колоды карт
0 Безумная старушка в самолете
0 Оценочные задачи
0 Спасение заключенных
Задача о купонах
0 Интервью в Интерфакс (Москва)
0 https://goo.gl/kVQBvH
Теория вероятностей на собеседовании
0 Предложите алгоритм перемешивающий колоду карт, работающий за линейное время
Теория вероятностей на собеседовании
0 Верно ли перемешает карты следующий алгоритм
for (i=1 to 52) {
j=random(1..52)
switch(a[i],a[j])
}
Теория вероятностей на собеседовании
0 Верно ли перемешает карты следующий алгоритм
for (i=1 to 52) { j=random(1..52)
switch(a[i],a[j])
}
Нет
Теория вероятностей на собеседовании
0 Сумасшедшая старушка в самолете - https://goo.gl/g9sn1T
Теория вероятностей на собеседовании
0 Спасение заключенных - https://goo.gl/OelxCn
Вопрос
0 Можно ли выучить самостоятельно теорию вероятностей?
0 Да
0 Нет
Вопрос
0 Можно ли выучить самостоятельно теорию вероятностей?
0 Да
0 Нет
0 Можно, но путь может быть долог и извилист
Вопрос
0 Какие дисциплины напрямую связаны с теорией вероятностей?
Онлайн курсы coursera.org/learn/kombinatorika-dlya-nachinayushchikh
Онлайн курсы coursera.org/learn/probability-theory-basics
Онлайн курсы 0 Теория вероятностей для крутых программистов от
преподавателей одного из лучших технологических университетов мира
0 EDX – MITx 0 edx.org/course/introduction-probability-science-mitx-6-041x-0
0 Интересный, но сложный курс
0 Теория вероятностей
0 Математическая статистика
0 Теория случайных процессов
Онлайн курсы 0 Теория вероятностей для медиков программистов
Statistics for Medical Professionals - Stanford
0 Интересный, доступный и познавательный курс, знакомящий с основами Т.В. и математической статистики
0 med.stanford.edu/cme/courses/online/medstats.html
Онлайн курсы 0 «Я люблю статистику» - EDX 0 edx.org/course/i-heart-stats-learning-love-statistics-notredamex-soc120x
Результаты опроса
0 Нужна ли теория вероятностей программисту
0 poll-maker.com/results446763xB54341a3-18#tab-2
Интервью для программистов
0 Бесплатный онлайн курс - https://goo.gl/dMS7ic
0 доступно 80 уроков
Дополнительный материал
0 Парадоксы теории вероятностей - встреча в обществе скептиков Москва 2014 – в трех частях
0 http://goo.gl/0cH3rB - видео
Дополнительный материал
0 Комбинаторика, Н.Я. Виленкин – учебник
0 Один из лучших, доступных и интересных учебников на русском языке:
0 комбинаторика
0 теория вероятностей
0 производящие функции
0 динамическое программирование
youtube.com/watch?v=2GrWE5lV5W8
Дополнительный материал
0 Парадоксы теории вероятностей и математической статистики Г. Секей
Уголок Библиофила
ОБРАТНАЯ СВЯЗЬ 0 [email protected]
0в контакте: vk.com/agile_psy
0youtube: youtube.com/user/igorkle1
Ваши вопросы и обратная связь суть лучший источник мотивации
Благодарности
Благодарности
Образовательный IT-портал GeekBrains
Благодарности
0Клейнер Надежда
0Бородин Захар
0Гольцман Александр
0Дубинский Игаль
0Гликин Григорий
Ответы на вопросы участников