14 февраля 2011 года, система контентной аналитики Watson одержала победу над двумя сильнейшими игроками в интеллектуальной телевизионной игре Jeopardy! («Рискуй!») – прототип телевизионной игры «Своя игра».

Это наглядный пример возможного варианта робота для торговли на фондовых биржах.

Чтобы энтузиасты роботостроительства представили , что в идеале надо создать и сколько это будет стоить, предлагаю краткий обзор системы WATSON. {cut}

Система Watson — это  годы работы сотен ученых плюс огромные вложенные средства, а в результате — вопрос-ответная система на архитектуре UIMA.

В отличие от поединка Deep Blue с Гарри Каспаровым, который за его бессмысленность назвали битвой человека с паровым катком, выигрыш компьютера Watson в телевизионной игре Jeopardy! имеет колоссальное значение как для будущего вообще, так и для развития класса аналитических систем в частности.

Ближайшим предком Watson можно считать систему AQUAINT (Advanced Question Answering for Intelligence), созданную под патронажем Национального института стандартов (NIST). В IBM  продолжили ее развитие и адаптировали этот проект под свои технологии, в результате получился практический вариант AQUAINT под именем PIQUANT (Practical Intelligent Question Answering Technology). Наследником PIQUANT является проект OpenEphyra, осуществленный IBM совместно с Университетом Карнеги-Меллона. От Watson он отличается возможностью поиска ответа в Web.

Watson  состоит из трех компонентов: суперкомпьютера, работающего под управлением операционной системы Linux, связующего ПО, реализующего архитектуру UIMA (Unstructured Information Management Architecture), и системы ответов на вопросы DeepQA. Центральной частью является UIMA.

Вопрос-ответные системы (Question Answering, QA) предназначены для поиска точных ответов на вопросы, поставленные на естественном языке (Natural Language Processing, NLP).

Технология управления неструктурированной информацией (Unstructured Information Management, UIM) и соответствующая архитектура UIMA разрабатывалась в IBM Research еще с 90-х годов группой, насчитывавшей порядка 200 сотрудников.  Итогом стало создание связующего ПО, получившего название UIMA, которое может служить ядром для создания и внедрения распределенных аналитических машин (analysis engine), или UIM-приложений, позволяющих извлекать знания из неструктурированной информации, в том числе из текстов, аудио, видео и изображений.

В 2008 году был выпущен релиз Apache UIMA-AS (Asynchronous Scaleout), в котором к основной функциональности UIMA была добавлена возможность асинхронного масштабирования. Обе эти новации были использованы при создании системы ответов DeepQA, обеспечивающей Watson способность играть в Jeopardy!.

Систему DeepQA разрабатывали 20 человек в течение трех лет. Работа началась с фундаментального исследования самой игры и тактики игроков. Помимо таких очевидных задач, как генерация гипотез, сбор доказательств, анализ и численная оценка, авторам пришлось решать и специфичные задачи: улавливание иронии, обнаружение скрытого смысла и других человеческих особенностей.. Сегодня Watson уступает настоящим игрокам в том, что является системой класса NLP, то есть аудио- и видеоданные он пока не понимает.

В DeepQA используется более 100 различных методик анализа данных на естественном языке.

По существу Watson представляет собой программный комплекс, который работает на кластере из 10 стоек по 9 стандартных серверов IBM Power 750 на базе процессоров POWER7. Общее число ядер равно 2880, и они распоряжаются 15 Тбайт оперативной памяти. Процессор POWER7 работает на частоте 3,55 ГГц и имеет 8 ядер, каждое из которых, в свою очередь, аппаратно поддерживает одновременное выполнение четырех потоков команд. Такой процессор подходит для задач обработки огромных объемов информации в параллельном режиме. Кластер работает под управлением операционной системы SUSE Linux Enterprise Server 11. Комплекс программ, реализующий многочисленные алгоритмы искусственного интеллекта (обработка естественного языка, извлечение информации, представление знаний, автоматический логический вывод и машинное обучение), написан на языках Java, C++ и Prolog.

Важный момент в создании Watson, связанный с открытием кодов и их последующим использованием, — эволюция UIMA свидетельствует о рациональности подхода Open Source. Сначала была многолетняя исследовательская работа в стенах корпорации, потом стали доступны ее результаты. За время пребывания в открытом состоянии UIMA обогатилась асинхронным масштабированием Asynchronous Scaleout и поддержкой Hadoop, что существенно расширило функциональны возможности и сферу применения параллельных вычислений.

Разработчики машины говорят, что конфигурация Watson перспективна для врачей, финансистов, промышленных компаний и всех остальных, кому необходимо исследовать очень большие массивы данных в реальном времени и получать ответы на поставленные вопросы.

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

По мнению инженеров, примерно два года Watson будет «учиться», то есть пропускать через себя медицинские карты, штудировать медицинскую литературу и пытаться ставить диагноз пациентам на основе данных анализов.

И все же ничто не может сравниться с творением природы – человеческим мозгом.

Огромный монстр из 10 серверных стоек — суперкомпьютер Watson способен выполнять 80 трлн. операций в секунду — 80 терафлопс (1 терафлопс = 1 триллион операций в секунду, 1012),  а  человеческий мозг- 20 петафлопс или 20 000 триллионов операций в секунду (1 петафлопс = 1015 операций в секунду).

Всего, “в каких-то” 250 раз, человеческий мозг  превосходит суперкомпьютер Watson по вычислительной мощности.

Tags: ,

Автор: Николай Камынин

Задача любого трейдера (робота) на фондовом рынке сводится к фильтрации получаемой информации в конечную точку решения.

Получить из исходной информации конечный результат без получения промежуточных результатов может лишь человеческий мозг на уровне подсознания.

При этом нам остается лишь догадываться, каким образом было получено то или иное решение, о котором говорят как об озарении или интуиции.

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

Большинство широко известных индикаторов, являются либо фильтрами нижних частот (интеграторами), либо фильтрами верхних частот (дифференциаторами).

Применительно к техническому анализу их обычно называют мувингами (скользящими средними) – в первом случае,  либо осцилляторами – во втором.

Данная статья посвящена фильтрам нижних частот ( мувингам, скользящим средним)

Применение любого метода (фильтра) для предсказания поведения цены в будущем всегда основано на некоторой модели предсказываемого процесса.

В основе применения мувингов (фильтров нижних частот)  лежит гипотеза о том что , движение цен обладает инертностью и если движение происходит в некотором направлении, то более вероятно, что оно продолжится в этом же направлении.

Поэтому будущее направление движения цен определяется путем сравнения текущей цены со средним значением на интервале наблюдения в прошлом.

Для оценки среднего значения цены применяются фильтры нижних частот(мувинги).

Простейший фильтр нижних частот представляет собой арифметическое среднее цен( С ) на некотором интервале (T), либо по заданному (N) числу сделок.

Интервал T называют интервалом наблюдения.

Предположим, что интервал наблюдения мы оставляем неизменным.

Введем минимальный тайм-фрейм в виде DT, тогда интервал наблюдения Т можно заменить

числом отсчетов на интервале N=T/DT.

Таким образом, в начальный момент, средняя цена на интервале N определяется как Y[0]=(x[1]+x[2]+….x[N])/N;

Тогда при появлении новой сделки x[N+1] , новое значении средней цены запишется как

Y[1]=(x[2]+….+x[N]+x[N+1])/N;

или

Y[1]=Y[0]+(x[N+1]-x[1])/N;

Далее Y[2]=Y[1]+(x[N+2]-x[2])/N;

Обозначим через n –номер очередного отсчета графика цены.

Тогда формулу скользящего среднего можно записать в виде:

Y[n]=Y[n-1]+(x[n]-x[n-N])/N;

Или

Y[n]=x[n]*(1/N)+Y[n-1]-x[n-N]/(1/N); (1)

A=(1/N)

Y[n]=x[n]*A-x[n-N]*A+Y[n-1];

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

Поэтому в общем случае фильтр первого порядка, к которым относится мувинг, запишется в виде Y[n]=Сумма(Ak*x[n-k])-A*y[n-1]

Фильтр нижних частот запишется в виде

Y[n]=A*Y[n-1]+X[n]*(1-A); (2)

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

В отличии от приведенной выше формулы (1), вычисление по формуле (2) проще, так как не требует помнить предыдущие значения цен X[].

Фильтры, в которых каждое результирующее значение вычисляется на основе всей исходной информации на интервале наблюдения, называется КИХ фильтром,

Фильтр , в которых каждое результирующее значение вычисляется на основе предыдущей оценки результата, называется БИХ фильтром.

В БИХ фильтре , текущее значение средней цены определяется как предыдущее значение, умноженное на коэффициент A<1, увеличенное на значение новой цены, умноженное на весовой коэффициент (1-A)<1.

Коэффициент A называют коэффициентом памяти.

Чем ближе этот коэффициент к 1, тем больший вклад в значение текущей оценки среднего вносит предшествующая оценка среднего.

В предельных случаях получаем:

Если A=1, то Y[n]=Y[n-1], — новые значения не влияют. Среднее не зависит от будущего.

Если A=0, то Y[n]=X[n] – история не влияет. Среднее не зависит от прошлого.

Коэффициент А часто определяют через период усреднения мувинга.

Таким образом, изменяя величину коэффициента A, мы меняем инерционность оценки среднего значения.  Чем ближе коэффициент А к 1, тем медленнее изменяется сигнал на выходе фильтра и более плавно изменяется индикатор мувинг.

Вопросы для размышления:

1) Возможно ли построить успешную торговую систему на мувингах с неизменным коэффициентом «A»

для произвольных рынков и продолжительных интервалов торговли ?

2) Можно ли превратить убыточную систему в прибыльную на исторических данных путем подгонки коэффициента «А»?

3) Если Вам предлагают успешного робота на мувинге и предлагают самим подобрать «A»(период мувинга). Что же Вы покупаете в действительности?

Tags: ,