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



Что такое R?
R - это язык программирования и бесплатная программная среда для статистических вычислений и графики. Язык R широко используется статистиками и специалистами по добыче данных для разработки статистического программного обеспечения и анализа данных.

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

Руководство по установке
Загрузите R и RStudio

Пакеты
CRAN - комплексная сеть архива R
CRAN - это сеть FTP- и веб-серверов по всему миру, на которых хранятся идентичные и актуальные , версии кода и документации для R.

Чтобы установить пакеты в R, введите указанные ниже команды в консоли R или перейдите в Инструменты, нажмите * Установить пакеты * и установите указанные ниже пакеты.

shiny — install.packages(“shiny”) 
nnet — install.packages(“nnet”) 
EBImage — install.packages(“BiocManager”) 
 BiocManager::install(“EBImage”) 

Синтаксис в R
Чтобы познакомиться с R. Запустите код из Syntax.R, который содержит пример инструкции if-else, для цикла, цикл while, оператор break & next и функция.

Линейная регрессия и аппроксимация кривой
Линейная регрессия - это линейный подход к моделированию взаимосвязи между скалярной переменной, зависящей от ответа, и независимыми переменными.

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

Запустите код из Regression & Curvefit.R, чтобы понять, как линейная регрессия и аппроксимация кривой работают в R.

Нейронная сеть
Основы нейронных сетей
Искусственная нейронная сеть (ИНС), широко известная как нейронная сеть, представляет собой вычислительную модель, основанную на структуре и функции биологических нейронных сетей. Это похоже на искусственную нервную систему человека для приема, обработки и передачи информации с точки зрения информатики.
По сути, в нейронной сети есть 3 разных уровня: -
Входной уровень (Все входные данные передаются в модель через этот слой)
Скрытые слои (может быть несколько скрытых слоев, которые используются для обработки входных данных, полученных от входных слоев)
Выходной слой (данные после обработки становятся доступными на выходном слое)

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

Скрытый слой
Скрытый слой - это набор нейронов, к которым применена функция активации, и это промежуточный слой между входным и выходным слоями. Его задача - обрабатывать входные данные, полученные на предыдущем уровне. Таким образом, именно слой отвечает за извлечение необходимых функций из входных данных. Было проведено много исследований по оценке количества нейронов в скрытом слое, но все же ни одному из них не удалось найти точный результат. Кроме того, в нейронной сети может быть несколько скрытых слоев. Итак, вы, должно быть, думаете, сколько скрытых слоев нужно использовать для того или иного рода задач. Предположим, что если у нас есть данные, которые можно разделить линейно, тогда нет необходимости использовать скрытый слой, поскольку функция активации может быть реализована на входном уровне, что может решить проблему. Но в случае проблем, связанных со сложными решениями, мы можем использовать от 3 до 5 скрытых слоев в зависимости от степени сложности проблемы или требуемой степени точности. Это, конечно, не означает, что если мы будем продолжать увеличивать количество слоев, нейронная сеть будет давать высокую точность! Наступает этап, когда точность становится постоянной или падает, если мы добавляем дополнительный слой! Также мы должны подсчитать количество нейронов в каждой сети. Если количество нейронов меньше по сравнению со сложностью проблемных данных, то в скрытых слоях будет очень мало нейронов для адекватного обнаружения сигналов в сложном наборе данных. Если в сети присутствует больше ненужных нейронов, может произойти переоснащение. До сих пор используются несколько методов, которые не предоставляют точной формулы для расчета количества скрытых слоев, а также количества нейронов в каждом скрытом слое.

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

Чтобы понять нейронную сеть, нам нужно визуализировать нейронную сеть.
Запустите код из NeuralNet_Visualization.R, который построит небольшую нейронную сеть.

Запуск вашей первой нейронной сети!
Это очень просто. Шаги следующие:
1. Клонируйте этот репозиторий
2. Откройте файл neuralNetwork.R в RStudio
3. Установите все упомянутые пакеты ранее в файле readme.
4. Запустите R-файл, щелкнув вкладку терминала в нижней половине экрана и набрав Rscript yourfilepath. Пример действительного пути к файлу на Mac: ~ / neuralNetwork.R. В этом файле нейронная сеть настроена на распознавание цифр из рукописного набора данных под названием MNIST. Наблюдайте за терминалом, пока он не покажет итерацию. Это означает, что обучение выполнено и сеть находится на n-й итерации. Подождите, пока терминал не опустеет.
5. Откройте Project_101411025, это R-файл, в котором использовался графический интерфейс с использованием Shiny, пакет R.
6. Установите все пакеты, упомянутые ранее в файле readme.
7. Запустите программу и используйте интерфейс для загрузки тестовых изображений, имеющихся в этом репозитории. Затем посмотрите, как ваша нейронная сеть успешно распознает цифры.

Зарегистрируйте учетную запись IBM Cloud, чтобы попробовать это руководство в облаке.



Заключение

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