Нейросеревые модели

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

/b>, используя конструктор класса network без параметров и задавая значения соответствующих полей вычислительной модели с помощью операторов присваивания. Убедиться в идентичности сетей net и asgnet.

Сравнить результаты работы полученных сетей.

Задание 3. Используя блоки имитационного моделирования инструментального пакета Simulink системы MATLAB, построить модель динамической сети asgnet, провести исследование модели, проверить адекватность её поведения поведению модели net и оформить электронный отчёт с помощью генератора Report Generator.

Задание 4. Используя конструктор класса network с параметрами и операторы присваивания для полей и ячеек объектов этого класса, построить, выдать на экран и промоделировать искусственные нейронные сети следующей архитектуры:

а) однослойная сеть с тремя нейронами, тремя двухкомпонентными входами и одним целевым выходом;

б) трёхслойная сеть с прямой передачей сигналов и с тремя нейронами в каждом слое; количество входов - три с двумя, пятью и тремя компонентами; для всех слоёв имеется смещение; выход -один;

в) трёхслойная сеть, в которой каждый слой соединён со всеми остальными; вход - один и состоит из двух компонентов; количество нейронов в каждом слое - три; слои имеют смещения;

г) трёхслойная динамическая сеть с тремя нейронами в каждом слое; число входов - три, из них каждый состоит из трёх компонентов; имеются смещения на всех слоях; линии задержки задерживают сигналы на один и два такта и включены между всеми слоями, а также на входе;

д) квадратная сеть с десятью слоями и десятью нейронами в каждом слое; десять векторов подключаются по одному к каждому слою; имеется десять выходов от всех слоёв сети; смещения подключены к каждому слою.

Лабораторная работа № 2

Методы и алгоритмы обучения искусственных нейронных сетей

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

Теоретические сведения.

После того как сформирована архитектура нейронной сети, должны быть заданы начальные значения весов и смещений, или иными словами, сеть должна быть инициализирована. Такая процедура выполняется с помощью метода init для объектов класса network. Оператор вызова этого метода имеет вид:

 

net = init (net).

 

Перед вызовом этого метода в вычислительной модели сети необходимо задать следующие свойства:

net.initFcn - для определения функций, которые будут использоваться для задания начальных матриц весов и весов слоёв, а также начальных векторов смещений;

net.layers {i}. initFcn - для задания функции инициализации i-го слоя;

net.biases{i}.initFcn - для задания начального вектора смещения i-го слоя;

net.inputWeights{i,j}.initFcn - для задания функции вычисления матрицы весов к слою i от входа j;

net.layerWeight{i,j}.initFcn - для задания функции вычисления матрицы весов к слою i от входа j;

net.initParam - для задания параметров функций инициализации.

Способ инициализации сети определяется заданием свойств и net.initFcn net.layers{i}.initFcn.

Для сетей с прямой передачей сигналов по умолчанию используется net.initFcn = initlay, что разрешает для каждого слоя использовать собственные функции инициализации, задаваемые свойством net.layers{i}.initFcn с двумя возможными значениями: initwb и initnw.

Функция initwb позволяет использовать собственные функции инициализации для каждой матрицы весов и для каждого вектора смещений, при этом возможными значениями для свойств net.inputWeights{i,j}.initFcn и net.layerWeight{i,j}.initFcn являются:

initzero, midpoint, randnc, rands, а для свойства net.biases{i}.initFcn - значения initcon, initzero и rands.

Для сетей без обратных связей с линейными функциями активации веса обычно инициализируются случайными значениями из интервала [-1 1].

Функция initnw реализуют алгоритм Nguyen-Widrow и применяется для слоёв, использующих сигмоидальные функции активации.

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

Другими возможными значениями свойства net.initFcn являются: initcon, initnw, initwb и initzero.

Помимо функции initnw следующие функции производят непосредственную инициализацию весов и смещений:

initzero присваивает матрицам весов и векторам смещений нулевые значения;

rands присваивает матрицам весов и векторам смещений случайные значения из диапазона [-1 1];

randnr присваивает матрице весов случайные нормированные строки из диапазона [-1 1];

randnc присваивает матрице весов случайные нормированные столбцы из диапазона [-1 1];

midpoint присваивает элементам вектора смещения начальные равные смещения, зависящие от числа нейронов в слое, и используется вместе с функцией настройки learncon.

Таким образом, задание функций инициализации для вычисли тельной модели нейронной сети является многоступенчатым и выполняется по следующему алгоритму:

. Выбрать для свойства net.initFcn одно из возможных значений: initzero, initcon, initnw, initwb или initlay.

. Если выбраны значения initzero, initcon или initnw, то задание функций инициализации сети завершено.

. Если выбрано значение initwb, то