Ответы пользователя по тегу Нейронные сети
  • Нормально ли keras тдёт на windows?

    @kamenyuga
    Для изучения пойдет все - и windows, и обучение на процессоре. Как раз увидишь, насколько тяжелы некоторые архитектуры для цпу. Бери питон 3.10, тензорфлоу 2.10 (керас находится внутри тензорфлоу) и учебник. Все остальное второстепенно по сравнению с самими нейронками и специальными библиотеками.

    Проблем избежать не удастся - у кераса и тензофлоу много косяков в совместимости между минорными версиями, т.к. прямо сейчас библиотека активно разрабатывается без полного тестирования.
    Ответ написан
    Комментировать
  • Влияет ли на что-то объединение блока слоев в Sequential модель (Keras, TensorFlow)?

    @kamenyuga
    Это чисто для удобства. Потом при выводе картинки делаешь
    tf.keras.utils.plot_model(..., expand_nested=False)
    , чтобы внутренности оберток не рисовались. На этом все удобство заканчивается. Видимо, сделали чисто для использования в туториале.

    В общем и целом - полезность низкая. Лучше давать всем слоям осмысленные имена. Оборачивают в модели-обертки обычно крупные блоки, которые потом переиспользуют или сохраняют.
    Ответ написан
    Комментировать
  • Как именно работают рекурентные нейронные сети?

    @kamenyuga
    Шолле "Глубокое обучение на Пайтон" - содержит краткое объяснение принципа работы рекуррентных нейросетей - простейших и реальных, а потом прикладной код на питоне. Больше теории и матана - Гудфеллоу "Глубокое обучение".

    Если в двух словах, то на каждый нейрон рекуррентного слоя приходят входной вектор данных, вектор данных скрытого слоя и вектор данных керри-слоя. Для каждого свои веса. В итоге все складывается, добавляется вес-байас. Все это оборачивается в функцию активации. Все, выход с одного нейрона готов. Потом считаем новые керри-данные, новые данные скрытого слоя, берем следующие входные данные, повторяем. Так применяется ЛСТМ.
    Ответ написан
    Комментировать
  • Как увеличиваются фильтры в CNN?

    @kamenyuga
    Ответ на это вопрос очевиден, если знать, что такое фильтр сверточного слоя в нейронных сетях. В случае с изображениями - это трехмерный тензор (матрица), вот так вот просто, никакой магии. А теперь конкретика и умножение целых чисел.

    На входе идут изображения 100х100х3. Размер ядра фильтра 3х3, значит, каждый фильтр имеет размер 3х3х3, всего их 16 штук, следовательно ((3*3*3) + 1) * 16 = 448 обучаемых коэффициентов (trainable parameter). Потом макспулинг, размер уменьшается до 50х50, количество фильтров не меняется. Выход имеет размер 50х50х16. Фильтры применяются к изображению 100*100*16 = 160к раз. Выход - это результат применения фильтров к изображению, т.е. новое изображение, именно оно подается дальше, никакие фильтры тут дальше не передаются. Фильтры - это как распылитель на покрасочном конвейере, распылитель наносит краску на деталь, фильтр преобразует изображение. Как может фильтр передаваться дальше? Никак. Это противоестественно.

    Потом идут новые 32 фильтра с ядром 3х3 и размером 3х3х16. Следовательно, ((3*3*16) + 1) * 32 = 4460 обучаемых коэффициентов. Фильтры применяются к изображению 50*50*32 = 80к раз. Выход перед макспулингом имеет размер 50х50х32. Потом опять макспулинг или флэттен слой (flatten).

    По итогу общее количество фильтров = 16 + 32. Общее количество обучаемых параметров = 448 + 4460. Фильтры помножены на изображение 240к раз. Вот только в этом маленьком кусочке из двух сверточных слоев (conv2d).
    Ответ написан
  • Проблема интерпретируемости?

    @kamenyuga
    Да, это так. Нейронную сеть трудно интерпретировать, потому что она сложно устроена. Даже в простых случаях нейронка - это несколько слоев из десятков или сотен нейронов, при этом каждый следующий слой зависит от предыдущего, а кроме того между слоями применяются функции активации и дропауты. Один из свежих подходов к интерпретации нейронок - LRP (layer-wise relevance propagation). Так что гугли что-то вроде "neural network interpretation with lrp method". Ожидается, что все серьезные источники будут на английском и наполнены матаном.
    Ответ написан
    Комментировать