Привет,

В этой статье я попытаюсь объяснить 2 типа моделей, с которыми мы сталкиваемся при разработке в Keras.

Приятного чтения🙂

ЧТО ТАКОЕ МОДЕЛЬ?

Возьмем в качестве примера первую статью из серии Başarabilirsin: Makine Öğrenmesi’ne Giriş:

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

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

Когда мы реализуем машинное обучение в Keras, мы можем создать нашу модель двумя способами: последовательным и функциональным.

Я предлагаю вам прочитать эту статью LSTM 🙂

Ниже вы можете увидеть простую схему модели:

Короче говоря:

  • Входной слой: это входной слой нашей модели. На этом уровне мы даем нашей модели информацию, на основе которой мы хотим сделать прогноз, а именно наши функции.
  • Скрытые слои: все остальные слои между входным и выходным слоями нашей модели являются скрытыми слоями.
  • Выходной слой: это выходной слой нашей модели. Наше значение метки выходит из этого слоя.

Пока проблем нет, верно? Красивый.

ПОСЛЕДОВАТЕЛЬНАЯ МОДЕЛЬ

В этом варианте модели реализация модели проста. Чтобы модель была простой, она должна:

  • Отсутствие нескольких источников ввода
  • Отсутствие нескольких целей вывода
  • Отсутствие повторного использования слоев (повторное использование)

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

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

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

Вы можете увидеть больше информации о Dense через здесь, и больше информации об активации через здесь.

ФУНКЦИОНАЛЬНАЯ МОДЕЛЬ

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

РЕЗУЛЬТАТ

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

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

ЗАКРЫТИЕ

В этой статье я попытался объяснить последовательные и функциональные модели. Надеюсь, это был пояснительный пост. Поздравляем и благодарим, если вы дошли до этого места 🙂 Желаю вам здоровья, счастья и продуктивного времяпрепровождения, удачи в марафоне машинного обучения 🙂