Translate

пятница, 5 декабря 2014 г.

Ядерные преобразования


Основное предназначение ядерных преобразований (kernel trick) в нейрокомпьютинге — это расширение количества входных данных искусственного нейрона за счет различных нелинейных функций от комбинаций входных данных.


Наибольшее распространение ядерные преобразования получили в машине опорных векторов (SVM). Основная причина тому, что SVM также, как и векторная машина Решетова (VMR) – это метод обучения одного единственного искусственного нейрона. Но поскольку машина опорных векторов в отличие от VMR слишком склонна к переобучению и не обладает свойством автопонижения размерности входов, то применение ядер там было чрезмерно осторожным. А точнее, прежде чем задействовать слабый искусственный интеллект машины опорных векторов с ядерными преобразованиями, необходимо было приложить сильный естественный интеллект биологических специалистов. Более того, из-за склонности к переобучению SVM, увеличение размерности входов с помощью ядер приводило к «проклятию размерности», а сами ядерные преобразования  для  неё были ограниченными, а именно применялись в основном только двухвекторные варианты. Это ограничение было связано с тем, что специалист визуально разглядывал многочисленные двумерные диаграммы с на которых проецировались классы в виде разноцветных точек, с целью обнаружения хоть какой либо сепарабельности с помощью ядер. И только после того, как человек с помощью естественного интеллекта находил подходящее ядро, можно было применить интеллект искусственный.

С появлением VMR положение дел изменилось. Искусственный интеллект стал сильным, но не по определению Тьюринга, а гораздо сильнее. Ведь по Тьюрингу «сильным» признавался тот искусственный интеллект, который сравнивался с человеческим (неотличим от человеческого). Но VMR уже гораздо сильнее человека. Ведь, если ранее биологическому специалисту по ядерным преобразованиям приходилось выполнять огромную работу с помощью своего естественного интеллекта, чтобы обнаружить какое нибудь подходящее двувекторное или максимум трёхвекторное ядро, то VMR за более короткий промежуток времени может подобрать не одно, а комбинации подходящих многовекторных ядер в более чем трёхмерном пространстве для решения задач бинарной классификации. Естественный интеллект теперь отдыхает. Да впрочем, и пусть отдыхает. Интеллектуальные задачи должны решаться с помощью интеллекта искусственного . Ведь основная задача человечества в том, чтобы освободить самих себя от рутинной деятельности, а не быть рабом обстоятельств.

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

Создаём интерфейс на Java:


package libvmr;

/**
 * Интерфейс ядерных преобразований
 * @author Yury V. Reshetov
 * @version 1.0
 */

public interface KernelTrick {
 /**
  * Преобразовать двумерный массив
  * @return
  */
    public double[][] getTransformData(double[][] samples,double[] results);

 /**
  * Преобразовать одномерный массив
  * @return
  */
    public double[] getTransformData(double[] sample);
    
 /**
  * Возвращает идентификаторы используемых переменных
  * @return идентификаторы переменных
  */
 public String[] getVariables();

}

Комментариев нет:

Отправить комментарий