[Шакла Нишант] Машинное обучение и TensorFlow (Библиотека программиста) [RUS, 2019]


src:
https://github.com/BinRoot/TensorFlow-Book

  • Переобучен (overfit)
  • Недо­статочно обучен (underfitting)


Запуск контейнера с TensorFlow в docker


$ docker exec -it 3459bce16e61 bash


# cd /tf
# git clone https://github.com/BinRoot/TensorFlow-Book
# cd TensorFlow-Book/ch02_basics/
# mkdir logs


Jupyter > TensorFlow-Book/ch02_basics/Concept08_TensorBoard.ipynb


Cells > Run all


# tensorboard --logdir=./logs --port=6006
Traceback (most recent call last):
  File "/usr/local/bin/tensorboard", line 6, in <module>
    from tensorboard.main import run_main
  File "/usr/local/lib/python3.6/dist-packages/tensorboard/main.py", line 40, in <module>
    from tensorboard import default
  File "/usr/local/lib/python3.6/dist-packages/tensorboard/default.py", line 39, in <module>
    from tensorboard.plugins.beholder import beholder_plugin_loader
  File "/usr/local/lib/python3.6/dist-packages/tensorboard/plugins/beholder/__init__.py", line 22, in <module>
    from tensorboard.plugins.beholder.beholder import Beholder
  File "/usr/local/lib/python3.6/dist-packages/tensorboard/plugins/beholder/beholder.py", line 199, in <module>
    class BeholderHook(tf.estimator.SessionRunHook):
AttributeError: module 'tensorflow.python.estimator.estimator_lib' has no attribute 'SessionRunHook'


Тут вроде понятно. Нужна постарше версия.

Но при вызове, получаю.

Illegal instruction (core dumped)


Часть 2: Основные алгоритмы обучения

Для оценки эффективности алгоритма обучения необходимо использовать такие понятия, как дисперсия и смещение.

  • Дисперсия (variance) показывает, насколько чувствителен прогноз к ис­пользованному обучающему набору. В идеале выбор обучающего набора не должен играть существенной роли, то есть дисперсия должна быть низкой.
  • Смещение (Ьias) показывает эффективность сделанных предположений относительно обучающего набора данных. Слишком большое число пред­ положений может привести к невозможности обобщения моделью, поэтому предпочтительно добиваться низкого значения смещения.


Модель должна хорошо аппроксимировать обу­чающие и проверочные данные. Если оказалось, что она плохо аппроксимирует проверочные и обучающие данные, то есть вероятность, что модель недостаточно хорошо обучена. Если же она плохо аппроксимирует проверочные данные, но хорошо обучающие, говорят, что модель избыточно обучена (переобучена).

Пример недостаточной и чрезмерной аппроксимации данных


Регрессия (Regression)

Классификация (Classification)