Что такое TensorFlow?

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

Реализация простой нейронной сети

Давайте посмотрим на некоторый код TensorFlow, который мы могли бы написать для нейронной сети. Ниже приведен код, использующий TensorFlow Keras API.

Не волнуйтесь, если это еще не имеет смысла; мы рассмотрим его построчно:

model = Sequential([Dense(units=1,input_shape=[1])])

Здесь, когда мы реализуем нейронную сеть с помощью TensorFlow, мы определяем слои, используя Sequential, т. е.
Sequential относится к созданию модели слой за слоем. Здесь последовательное ветвление или совместное использование слоев не допускается, и мы не можем иметь несколько входов и выходов.

После определения слоев наш следующий шаг — определить, как слой будет выглядеть, используя API keras.layers. Этот API состоит из различных типов слоев, но здесь, в нашей реализации, мы использовали плотный слой.
Поскольку мы видим, что наша типичная нейронная сеть является полносвязным слоем, поэтому мы предпочитаем плотный слой нейронной сети, который связан глубоко, т. е. каждый нейрон в плотном слое получает входные данные от всех нейронов своего предыдущего слоя.

Наша следующая строка — это место, где начинается настоящая реализация и веселье:

model.compile(optimizer = ‘sgd’, loss = ‘mean_squared_error’)

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

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

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

Затем мы просто задаем значения X и y, используя библиотеку NumPy.

Наша последняя строка соответствует модели:

model.fit(X,y,epochs = 3)

Мы можем сказать, что подгоняем значения X к y и пытаемся 3 раза, то есть при первой попытке компьютер генерирует некоторые результаты и угадывает взаимосвязь. Затем он передаст эти результаты оптимизатору, который сгенерирует другое предположение. Этот процесс будет повторяться 3 раза, и в результате угадывать будет все лучше и лучше
Ниже приведен результат реализации простой нейронной сети. Посмотрите на значения потерь с течением времени. Мы можем наблюдать, что за первые три эпохи потеря уменьшилась с 34,6 до 20,2

Спасибо за чтение! Надеюсь, эта статья поможет вам узнать что-то новое!

Не забудьте поставить 👏 ! Оставайтесь с нами для следующей статьи — Проектирование нейронной сети