¾ За время проведения Олимпийских игр в Сочи официальный сайт имел свыше 100 млн. посещений.
¾ Максимальное количество пользователей пришло из России, США, Канады, Украины и Франции.
¾ Соревнования по фигурному катанию и неофициальный медальный зачёт привлекли наибольшее внимание.
¾ В момент пиковой нагрузки на сайте одновременно присутствовало свыше 175 тысяч посетителей, что в 15 раз превышало количество пользователей в периоды минимального потребления. Они просматривали страницы с онлайн-результатами, совершая более 90 тысяч запросов в секунду.
¾ Ежедневно сайт посещали свыше 5 миллионов пользователей. Они просматривали более 30 миллионов страниц.
¾ Windows Azure использовалась для предоставления информации для мобильных устройств на любых платформах (на сегодняшний день установлено более 6 миллионов копий официальных приложений Сочи 2014).
¾ Количество просмотров сайта за время Игр превысило 500 миллионов, а количество запросов к виртуальным машинам Azure составило более 25 миллиардов.
Департамент консалтинга и технической поддержки корпоративных заказчиков, под чьим руководством велось проектирование и внедрение официального сайта, также осуществлял техническую поддержку. Команда численностью 23 эксперта, работала на месте в течение всего периода проведения игр в режиме 24/7.
Еще одним интересным проектом является перенос логики расчетов
мультиплейерной игры Titanfall на облачные ресурсы. В Titanfall искусственный
интеллект и сетевые функции полностью реализованы на базе облака Azure. По
данным Microsoft на запуске игры был использован пул из 100000 виртуальных
машин, которые обеспечили гладкий старт игры и беспроблемную обработку пикового
интереса со стороны игроков.
К сожалению Windows Azure не является бесплатной, но существуют способы получения полноценной версии для ознакомления и не только. В этом пункте речь пойдет именно о них.
Вы можете получить доступ к Windows Azure, активировав подписку или
триал, которые предоставляются бесплатно:
Рисунок 3 - Способы бесплатного получения Azure
¾ Стартапам - программа Microsoft BizSpark
Стартапы-участники программы BizSpark получают бесплатно ежемесячно в течении 3 лет участия в программе ресурсы Windows Azure на 150$ в месяц для разработки, тестирования и размещения в интернете своих сервисов, а также имеют возможность получить еще больше ресурсов по программе для успешных стартапов BizSpark+. Подробнее.
Подписчики MSDN получают ежемесячно до 5 000 рублей в месяц на использование ресурсов Windows Azure, а также специальные льготные низкие цены на вычислительные мощности для целей разработки и тестирования ПО. Подробнее.
¾ Партнерам Microsoft - Пакет Cloud Essentials Pack
Партнёры, участвующие в программе Microsoft Partner Network, могут получить бесплатные ресурсы Windows Azure, входящие в пакет Cloud Essentials Pack.
¾ Преподавателям и студентам - Educator Grant
Преподаватели могут получить ресурсы Windows Azure в виде гранта в рамках курсов или научных работ ВУЗа или подписки DreamSpark Premium для учебного заведения.
¾ Бесплатный триал Windows Azure
Каждый из вас может активировать триальную подписку Windows Azure. В качестве пробного периода пользователям предлагается бесплатный кредит на сумму $200. Его можно потратить на любые сервисы Windows Azure в рамках стандартной тарификации.
Так же стоит отметить, что для получения триал версии понадобится банковская карта Visa или MasterCard со счета которой снимут и пообещают вернуть 30 рублей.
Самый быстрый и в то же время единственный способ для меня получения
Windows Azure: триальная подписка.
3. Нейронные сети
История нейронных сетей начинается в 1950-х гг., когда была представлена
архитектура простейших нейронных сетей. После начальной работы в области идея
нейронных сетей стала весьма популярной. Но затем область угасла, когда
обнаружилось, что нейронные сети тех времен годились для крайне ограниченного
числа задач. В 1970-х гг. область снова расцвела, когда была представлена идея
многослойных нейронных сетей с алгоритмом обучения с обратным распространением.
С тех пор много разных исследователей изучало область нейронных сетей, что
привело к появлению широкого диапазона разных нейронных архитектур,
применявшихся к множеству разных задач.
Иску́сственная нейро́нная се́ть (ИНС) - математическая модель, а также её программная или аппаратная реализация, построенная по принципу организации и функционирования биологических нейронных сетей - сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге, и при попытке смоделировать эти процессы. Первой такой попыткой были нейронные сети У. Маккалока и У. Питтса. После разработки алгоритмов обучения, получаемые модели стали использовать в практических целях: в задачах прогнозирования, для распознавания образов, в задачах управления и др. [1].
ИНС представляют собой систему соединённых и взаимодействующих между собой простых процессоров (искусственных нейронов). Такие процессоры обычно довольно просты (особенно в сравнении с процессорами, используемыми в персональных компьютерах). Каждый процессор подобной сети имеет дело только с сигналами, которые он периодически получает, и сигналами, которые он периодически посылает другим процессорам. И, тем не менее, будучи соединёнными в достаточно большую сеть с управляемым взаимодействием, такие локально простые процессоры вместе способны выполнять довольно сложные задачи.
С точки зрения машинного обучения, нейронная сеть представляет собой частный случай методов распознавания образов, дискриминантного анализа, методов кластеризации и т.п. С математической точки зрения, обучение нейронных сетей - это многопараметрическая задача нелинейной оптимизации. С точки зрения кибернетики, нейронная сеть используется в задачах адаптивного управления и как алгоритмы для робототехники. С точки зрения развития вычислительной техники и программирования, нейронная сеть - способ решения проблемы эффективного параллелизма. А с точки зрения искусственного интеллекта, ИНС является основой философского течения коннективизма и основным направлением в структурном подходе по изучению возможности построения (моделирования) естественного интеллекта с помощью компьютерных алгоритмов.
Нейронные сети не программируются в привычном смысле этого слова, они обучаются. Возможность обучения - одно из главных преимуществ нейронных сетей перед традиционными алгоритмами. Технически обучение заключается в нахождении коэффициентов связей между нейронами.
В процессе обучения нейронная сеть способна выявлять сложные зависимости между входными данными и выходными, а также выполнять обобщение.
Это значит, что в случае успешного обучения сеть сможет вернуть верный
результат на основании данных, которые отсутствовали в обучающей выборке, а
также неполных и/или "зашумленных", частично искаженных данных.
В нынешнее время нейронные сети применяются к таким задачам, как классификация, распознавание, приближение, предсказание, кластеризация, моделирование памяти и множество других разных задач, число которых растет.
В качестве образов могут выступать различные по своей природе объекты: символы текста, изображения, образцы звуков и т.д. При обучении сети предлагаются различные образцы образов с указанием того, к какому классу они относятся. Образец, как правило, представляется как вектор значений признаков. При этом совокупность всех признаков должна однозначно определять класс, к которому относится образец. В случае, если признаков недостаточно, сеть может соотнести один и тот же образец с несколькими классами, что неверно. По окончании обучения сети ей можно предъявлять неизвестные ранее образы и получать ответ о принадлежности к определённому классу.
Топология такой сети характеризуется тем, что количество нейронов в
выходном слое, как правило, равно количеству определяемых классов. При этом
устанавливается соответствие между выходом нейронной сети и классом, который он
представляет. Когда сети предъявляется некий образ, на одном из её выходов
должен появиться признак того, что образ принадлежит этому классу. В то же
время на других выходах должен быть признак того, что образ данному классу не
принадлежит. Если на двух или более выходах есть признак принадлежности к
классу, считается, что сеть "не уверена" в своём ответе.
Эта задача близка к задаче классификации. Классификации подлежат
ситуации, характеристики которых поступают на вход нейронной сети. На выходе
сети при этом должен появиться признак решения, которое она приняла. При этом в
качестве входных сигналов используются различные критерии описания состояния
управляемой системы
Под кластеризацией понимается разбиение множества входных сигналов на классы, при том, что ни количество, ни признаки классов заранее не известны. После обучения такая сеть способна определять, к какому классу относится входной сигнал.
Сеть также может сигнализировать о том, что входной сигнал не относится ни к одному из выделенных классов - это является признаком новых, отсутствующих в обучающей выборке, данных.
Таким образом, подобная сеть может выявлять новые, неизвестные ранее классы сигналов. Соответствие между классами, выделенными сетью, и классами, существующими в предметной области, устанавливается человеком. Кластеризацию осуществляют, например, нейронные сети Кохонена.
Нейронные сети в простом варианте Кохонена не могут быть огромными, поэтому их делят на гиперслои (гиперколонки) и ядра (микроколонки).
Если сравнивать с мозгом человека, то идеальное количество параллельных слоёв не должно быть более 112.
Эти слои в свою очередь составляют гиперслои (гиперколонку), в которой от 500 до 2000 микроколонок (ядер). При этом каждый слой делится на множество гиперколонок, пронизывающих насквозь эти слои. Микроколонки кодируются цифрами и единицами с получением результата на выходе. Если требуется, то лишние слои и нейроны удаляются или добавляются. Идеально для подбора числа нейронов и слоёв использовать суперкомпьютер.
Такая система позволяет нейронным сетям быть пластичными.
.2.4 Прогнозирование
Способности нейронной сети к прогнозированию напрямую следуют из её способности к обобщению и выделению скрытых зависимостей между входными и выходными данными. После обучения сеть способна предсказать будущее значение некой последовательности на основе нескольких предыдущих значений и (или) каких-то существующих в настоящий момент факторов.
Следует отметить, что прогнозирование возможно только тогда, когда предыдущие изменения действительно в какой-то степени предопределяют будущие.
Например, прогнозирование котировок акций на основе котировок за прошлую
неделю может оказаться успешным (а может и не оказаться), тогда как прогнозирование
результатов завтрашней лотереи на основе данных за последние 50 лет почти
наверняка не даст никаких результатов.
Нейронные сети могут аппроксимировать непрерывные функции. Доказана обобщённая аппроксимационная теорема: с помощью линейных операций и каскадного соединения можно из произвольного нелинейного элемента получить устройство, вычисляющее любую непрерывную функцию с некоторой наперёд заданной точностью.
Это означает, что нелинейная характеристика нейрона может быть произвольной: от сигмоидальной до произвольного волнового пакета или вейвлета, синуса или многочлена.
От выбора нелинейной функции может зависеть сложность конкретной сети, но
с любой нелинейностью сеть остаётся универсальным аппроксиматором и при
правильном выборе структуры может достаточно точно аппроксимировать
функционирование любого непрерывного автомата.
Способность нейросетей к выявлению взаимосвязей между различными параметрами дает возможность выразить данные большой размерности более компактно, если данные тесно взаимосвязаны друг с другом. Обратный процесс - восстановление исходного набора данных из части информации - называется (авто)ассоциативной памятью. Ассоциативная память позволяет также восстанавливать исходный сигнал/образ из зашумленных/поврежденных входных данных. Решение задачи гетероассоциативной памяти позволяет реализовать память, адресуемую по содержимому.
¾ Сбор данных для обучения;
¾ Подготовка и нормализация данных;
¾ Выбор топологии сети;
¾ Экспериментальный подбор характеристик сети;
¾ Экспериментальный подбор параметров обучения;
¾ Собственно обучение;
¾ Проверка адекватности обучения;
Выбор данных для обучения сети и их обработка является самым сложным этапом решения задачи. Набор данных для обучения должен удовлетворять нескольким критериям:
· Репрезентативность - данные должны иллюстрировать истинное положение вещей в предметной области;
· Непротиворечивость - противоречивые данные в обучающей выборке приведут к плохому качеству обучения сети.
Исходные данные преобразуются к виду, в котором их можно подать на входы сети. Каждая запись в файле данных называется обучающей парой или обучающим вектором. Обучающий вектор содержит по одному значению на каждый вход сети и, в зависимости от типа обучения (с учителем или без), по одному значению для каждого выхода сети. Обучение сети на "сыром" наборе, как правило, не даёт качественных результатов. Существует ряд способов улучшить "восприятие" сети.
Нормировка выполняется, когда на различные входы подаются данные разной размерности. Например, на первый вход сети подаются величины со значениями от нуля до единицы, а на второй - от ста до тысячи. При отсутствии нормировки значения на втором входе будут всегда оказывать существенно большее влияние на выход сети, чем значения на первом входе. При нормировке размерности всех входных и выходных данных сводятся воедино.
Квантование выполняется над непрерывными величинами, для которых выделяется конечный набор дискретных значений. Например, квантование используют для задания частот звуковых сигналов при распознавании речи; Фильтрация выполняется для "зашумленных" данных.
Кроме того, большую роль играет само представление как входных, так и выходных данных. Предположим, сеть обучается распознаванию букв на изображениях и имеет один числовой выход - номер буквы в алфавите. В этом случае сеть получит ложное представление о том, что буквы с номерами 1 и 2 более похожи, чем буквы с номерами 1 и 3, что, в общем, неверно. Для того, чтобы избежать такой ситуации, используют топологию сети с большим числом выходов, когда каждый выход имеет свой смысл. Чем больше выходов в сети, тем большее расстояние между классами и тем сложнее их спутать.
Выбирать тип сети следует, исходя из постановки задачи и имеющихся данных
для обучения. Для обучения с учителем требуется наличие для каждого элемента
выборки "экспертной" оценки. Иногда получение такой оценки для
большого массива данных просто невозможно. В этих случаях естественным выбором
является сеть, обучающаяся без учителя (например, самоорганизующаяся карта
Кохонена или нейронная сеть Хопфилда). При решении других задач (таких, как
прогнозирование временных рядов) экспертная оценка уже содержится в исходных
данных и может быть выделена при их обработке. В этом случае можно использовать
многослойный перцептрон или сеть Ворда.