28.05.24 Создание скриншотов для последующего анализа алгоритмами машинного обучения
Запись от jvf размещена 24.05.2018 в 15:44
1. Создание скриншотов для последующего анализа алгоритмами машинного обучения В настоящим момент на Kaggle есть множество баз данных. Их можно скачивать и с ними что-то делать, но интереснее попробовать эти алгоритмы на своих базах. Проблема только в том, что создавать их долго по времени. Но есть один простой способ -- создание собственных скриншотов. Вы сидите за компьютером, и программа автоматически делает скриншоты вашего экрана через заданный промежуток времени. Через пару недель у вас будет много снимков. Потом надо будет вручную это всё как-то распределить, и можно будет запускать алгоритмы машинного обучения для развлечения. Что-то там изучать. Но для начала нужно написать программу, которая будет способна эти скриншоты сохранять. Вот я её и написал. Программа очень короткая и простая. Состоит из двух файлов. Первый называется utils: Программа utils делает простую вещь: создаёт необходимые папки под названием "Data", "Photo", а также подпапки в папке Photo под названием "orig" и "compr". Также в ней есть функция, которая будет сохранять наш файл на диск.
2. Интересное видео о машинном обучении Анализ качества обучения нейронной сети https://www.youtube.com/watch?v=ykDH66b0N_4 Интересные факты из видео: 1. Нейронные сети могу переобучаться. Нужно оценивать качество нейронной сети на тех данных, которые она не видела во время обучения 2. В библиотеке Keras можно использовать функцию, которая позволяет автоматически разбить данные для обучения и данные для проверки. Для этого можно написать так:
Epoch 1/100 loss : 1.4934 - acc:0.6488 - val_loss:0,9905, val_acc - 0.8146 loss : 1.4934 - acc:0.6488 -- это данные на обучающей выборке val_loss:0,9905, val_acc - 0.8146 -- данные на проверочной выборке Если в конце точность на проверочной выборе перестала расти, то это говорит о том, что мы близки к переобучению, и обучение сети необходимо остановить. 3. Интересные тексты о машинном обучении На Kaggle есть интересный код: https://www.kaggle.com/yassine... -997-top-6 Здесь рассказывает о новой функции ReduceLROnPlateau Чтобы её воспользоваться, надо сначала импортировать
learning_rate - это шаг, с которым оптимизатор пытается достичь минимума нашей функции. Чем больше learning_rate, тем быстрее достигается минимум, но если он слишком большой, то есть шанс попать в локальный минимум, а мы хотим попасть в глобальный минимум. На следующем рисунке это поясняется: https://en.wikipedia.org/wiki/... iginal.svg Поэтому лучше не иметь learning_rate постоянным, а постепенно уменьшать его с каждым шагом. Основная вещь в ReduceLROnPlateau -- мы уменьшаем learning_rate динамически. Мы следим за показателями val_acc, и если точность не повышается за три эпохи, то мы уменьшаем learning_rate в два раза. Иными словами, мы пытаемся достичь минимума с большим шагом (пытаемся ускорить алгоритм), но если результаты не улучшаются, то мы уменьшаем learning_rate в два раза. |
Всего комментариев 0
Комментарии