Coder Social home page Coder Social logo

intelligent-systems-phystech / 2018-project-11 Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 2.0 12.96 MB

Автоматическое построение нейросети оптимальной сложности

TeX 22.64% Python 13.07% Jupyter Notebook 64.29%
edu-project

2018-project-11's People

Contributors

andriygav avatar atovkes avatar bahleg avatar change-my-username avatar gubanovsergey avatar nikolay-goryan avatar taranov-sergey avatar ulitinau avatar valeriymarkin avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

valeriymarkin

2018-project-11's Issues

Запустить эксперимент на CIFAR

  1. Запустить DARTS с количеством слоев = 3, количеством эпох = 10, init_channels и - на ваше усмотрение, но оно должно быть фиксировано во всех запусках. Каждую эпоху сохранять модель (не смотрел, как часто сохраняет модель DARTS в оригинале). Повторить запуск минимум 5 раз (для усреднения результатов).

  2. Запустить DARTS с сильной регуляризацией структуры (значение температуры подорбать таким образом, чтобы после пары-тройки итераций веса были почти дискретными). Каждую эпоху сохранять модель (не смотрел, как часто сохраняет модель DARTS в оригинале). Повторить запуск минимум 5 раз (для усреднения результатов).

  3. Запустить DARTS. Регуляризацию структуру калибровать на КАЖДОЙ эпохе таким образом, чтобы в начале эпохи температура была большая, в конце - низкая. Повторить запуск минимум 5 раз (для усреднения результатов).

  4. По каждой из итоговых моделей построить график зависимости accuracy на тестовой выборке от шума, добавленного в выборку (шум - гауссовый, калибруется дисперсия).

  5. По каждой из итоговых моделей построить график зависимости accuracy на тестовой выборке от шума, добавленного в параметры (шум - гауссовый, калибруется дисперсия).

Изучить выборки MNIST, n-MNIST

Изучить выборки MNIST и n-MNIST.
Построить однослойную и двуслойную нейросеть по примеру из tutorial'ов, сравнить качество с качеством из литературы.

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

зависимости качества от количества запусков
зависимости количества параметров от количества запусков.
Задача рассчитана на 2 человек.

Запустить эксперимент на MNIST

В клетке должны быть несколько матриц параметров разного размера.
Допустим, у вас есть выборка MNIST. Признаковое пространство MNIST имеет размерность 784.

Построим несколько матриц вида:
784x700, 784x500, 784x100.

Если мы домножим объект выборки на одну из этих матриц (и подействуем какой-нибудь нелнинейной операцией), то получим вектор размерности
700, 500 или 100 соотвественно.
Дополним каждый из этих векторов нулями до максимальной размерности (в нашем случае, 700).
Так мы получим представление выборки под действием сетей с разными размерами скрытого слоя в одном пространстве.
Собственно, в клетке это и должно быть запрогано.

  1. Запустить MLP-DARTS на MNIST с одним скрытым слоем и с размерностями 100, 400, 800, 12, количество эпох = 10. Повторить запуск минимум 5 раз (для усреднения результатов).

  2. Запустить MLP-DARTS на MNIST с сильной регуляризацией структуры (значение температуры подорбать таким образом, чтобы после пары-тройки итераций веса были почти дискретными). Каждую эпоху сохранять модель (не смотрел, как часто сохраняет модель DARTS в оригинале). Повторить запуск минимум 5 раз (для усреднения результатов).

  3. Запустить MLP-DARTS на MNIST. Регуляризацию структуру калибровать на КАЖДОЙ эпохе таким образом, чтобы в начале эпохи температура была большая, в конце - низкая. Повторить запуск минимум 5 раз (для усреднения результатов).

  4. Запустить случайный поиск на тех же клетках, обучить 25 моделей.

  5. Построить график: наилучшее значение Accuracy на тестовой выборке от количества моделей.

  6. Построить scatter-график: по оси X: количество параметров,
    по оси Y: Accuracy.

Изучить код DARTS

Изучить код DARTS досконально. Нужно получить полное представление о том, как там параметризуется сеть, что нужно сделать чтобы ввести регуляризацию структуры и прочее.

На выходе: в репозиторий залит код DARTS с доп. комментариями и документацией (README.md), отвечаюищми на вопросы:

  1. Как добавить регуляризацию в структуру
  2. Как запустить DARTS с графом другого вида (например, MLP)

Задача рассчитана на трех человек.

Построение синтетической выборки

Построить синтетическую выборку, на которой потенциально плохо должен сработать DARTS.
Варианты:

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

  2. Модель имеет два явных экстремума, при неправильном начальном приближении модель "выбирает" менее хороший экстремум. Калибровка температуры позволяет перейти от одного экстремума к другому.

В результате:
должна быть построена выборка и описано ожидаемое поведение DARTS и нашего метода.

Изучить выборку CIFAR-10

Изучить выборку CIFAR-10.
Построить свертку по примеру из tutorial'ов.

Запустить случайный поиск на CIFAR.
В результате должен быть код, сохраненные модели, и графики:

  1. зависимости качества от количества запусков
  2. зависимости количества параметров от количества запусков.

Задача рассчитана на 2 человек.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.