Я возился со стандартными многослойными персептронами и алгоритмом обратного распространения в Encog уже две недели, как с помощью рабочей среды, так и с помощью кода Java. Моя следующая работа потребует вставки шума во входные шаблоны, как в этой статье: http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6033567 (PCA и гауссов шум в обучении нейронной сети MLP улучшают обобщение в задачах с небольшими и несбалансированными наборами данных)
По сути, мне нужно (это проблема двоичной классификации): 1 - преобразовать входные шаблоны с помощью анализа основных компонентов (PCA) 2 - использовать обратное распространение для обучения MLP с уловкой: вставьте другой белый шум в каждый обучающий шаблон на каждую эпоху.
Каков более простой способ сделать эту инъекцию шума с помощью Java-версии Encog? Использует ли какой-либо из доступных обучающих алгоритмов введение искусственного шума?
PS.: Полный алгоритм статьи, которую я цитировал, таков:
1. Apply PCA to decorrelate the variables
2. Initialize the system architecture
3. Set k, max number of epochs and min error
4. Begin training - While epoch counter a. Randomly draw an input pattern (vector x) without replacement for presentation
b. Inject noise into input pattern
1. For every variable from the input pattern
a. Draw g from a Gaussian distribution. g ~ N(0,1)
b. Calculate n = k * g
c. Add ninto input pattern x
c. Present the input pattern
d. Adjust the system parameters
e. If training stopping criterion has been reached then
1. Stop training
f. Otherwise
1. Increment epoch counter
2. Go to 4.a