Привет,
В этой статье я попытаюсь объяснить 2 типа моделей, с которыми мы сталкиваемся при разработке в Keras.
Приятного чтения🙂
ЧТО ТАКОЕ МОДЕЛЬ?
Возьмем в качестве примера первую статью из серии Başarabilirsin: Makine Öğrenmesi’ne Giriş:
Представьте себе старшеклассника, у которого через два дня экзамен в университете. Этот студент готовится к экзамену и решает практические экзамены. Когда студент сдает университетский экзамен, он сталкивается с похожими вопросами, а не с теми же, что и на практических экзаменах. Студент учился, решая практические экзамены, и смог ответить на вопросы университетского экзамена с помощью модели вопросов на практических экзаменах.
Теперь давайте обратимся к этому сценарию на стороне машинного обучения.
Мы создаем модель (студент) при решении задач машинного обучения. Эта модель является моделью, в которой работает наш алгоритм машинного обучения. Сначала мы снабжаем эту модель информацией, обучаем ее (студенты готовятся к экзамену), а затем хотим, чтобы эта обученная модель предсказывала новый результат с информацией, которую мы ранее не давали. (Студент сдает экзамен, вопросов к которому он раньше не видел.)
В этом случае мы можем рассматривать нашу модель как структуру, которая изучает информацию и делает прогнозы с определенными данными на основе полученной информации.
Когда мы реализуем машинное обучение в Keras, мы можем создать нашу модель двумя способами: последовательным и функциональным.
Я предлагаю вам прочитать эту статью LSTM 🙂
Ниже вы можете увидеть простую схему модели:
Короче говоря:
- Входной слой: это входной слой нашей модели. На этом уровне мы даем нашей модели информацию, на основе которой мы хотим сделать прогноз, а именно наши функции.
- Скрытые слои: все остальные слои между входным и выходным слоями нашей модели являются скрытыми слоями.
- Выходной слой: это выходной слой нашей модели. Наше значение метки выходит из этого слоя.
Пока проблем нет, верно? Красивый.
ПОСЛЕДОВАТЕЛЬНАЯ МОДЕЛЬ
В этом варианте модели реализация модели проста. Чтобы модель была простой, она должна:
- Отсутствие нескольких источников ввода
- Отсутствие нескольких целей вывода
- Отсутствие повторного использования слоев (повторное использование)
Соответственно, мы можем сказать, что модель проста, если ее входные данные поступают из одного места, ее выходные данные идут в одно место, а в других моделях слои не используются.
В последовательной модели мы сначала создаем нашу модель, а затем добавляем в нее слои. Выход одного слоя становится входом следующего слоя. Запачкаем руки 🙂
Одна из вещей, на которую вы должны обратить внимание, это то, что мы добавляем слои с помощью функции добавления нашей модели. Если внимательно изучить слои, мы увидим, что первый слой принимает параметр input_dim. Отсюда мы можем понять: последовательные модели имеют только один входной слой, и этот слой всегда является первым слоем.
Вы можете увидеть больше информации о Dense через здесь, и больше информации об активации через здесь.
ФУНКЦИОНАЛЬНАЯ МОДЕЛЬ
Этот тип модели предлагает нам большую гибкость в реализации. Это допускает существование нескольких источников ввода и вывода, которые совместно используют одни и те же слои. В этой реализации мы сначала создаем слои, соединяем их, а затем создаем нашу модель.
РЕЗУЛЬТАТ
Хотя последовательная модель предоставляет нам простоту, она не обеспечивает гибкости на уровне слоев. Мы строим нашу модель и добавляем наши слои по порядку. Есть только один входной слой.
Функциональная модель более сложная, но, соответственно, и более гибкая. Сначала мы создаем наши слои, при необходимости обрабатываем их друг с другом, затем создаем нашу модель, используя один или несколько входных и выходных слоев.
ЗАКРЫТИЕ
В этой статье я попытался объяснить последовательные и функциональные модели. Надеюсь, это был пояснительный пост. Поздравляем и благодарим, если вы дошли до этого места 🙂 Желаю вам здоровья, счастья и продуктивного времяпрепровождения, удачи в марафоне машинного обучения 🙂