7 трюков для глубокого обучения, о которых вы не знали


Оглавление (нажмите, чтобы открыть):

Глубокое обучение: быстрый старт для разработчиков

Глубокое обучение считается чем-то вроде rocket science: звучит круто, выглядит сложно и содержит всякую математику. На самом деле все не так сложно. Вот вам перевод руководства по глубокому обучению «Deep Learning for Developers: Tools You Can Use to Code Neural Networks on Day 1» от Эмиля Волнера.

Текущая волна интереса к глубокому обучению началась лет пять назад. Экспоненциальный рост мощности компьютеров и истории успеха стали тому причиной. Глубокое обучение — технология, управляющая автомобилями, побеждающая людей в играх Atari и диагностирующая рак.

Приступая к изучению глубокого обучения, я потратил пару недель на исследования. Я выбирал инструменты, сравнивал облачные сервисы и просматривал онлайн-курсы. Оглядываясь назад, я понимаю, что мог бы начать создавать нейронные сети в первый же день. Вот об этом я и расскажу в этой статье.

Вам не нужна особая подготовка. Достаточно базового понимания Python, командной строки и Jupyter notebook.

Глубокое обучение — часть машинного обучения. Доказано, что это эффективный метод поиска паттернов в сырых данных, таких как звук или изображение. Скажем, вы хотите классифицировать картинки кошек и собак. Без специального программирования, сперва выделим границы изображения. Затем построим паттерны из набора изображений, и наконец выделим носы, хвосты и лапы. Так нейронная сеть в итоге классифицирует собак и кошек.

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

Основная логика

Представьте машину, собранную из случайного набора шестеренок. Шестеренки собраны в слои и взаимодействуют друг с другом. Изначально машина не работает. Шестеренки настроены случайным образом, и их нужно перенастроить так, чтобы машина заработала.

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

Теперь инженер настраивает каждую шестеренку, основываясь на том, какую ошибку она дает, и пытается запустить машину снова. Он опять вычисляет ошибку и настраивает каждую шестеренку. Его задача — продолжать этот процесс, пока машина не заработает так, как требуется.

Нейронные сети работают похожим образом. Они имеют данные на входе и требуемый результат на выходе, и настраивают шестеренки, чтобы найти корреляцию между первым и вторым. Получая входные данные, сеть меняет свои настройки, чтобы получить выходной результат. Затем сеть сравнивает результат с эталоном.

Для уменьшения ошибок сеть вычисляет разницу между текущим результатом и эталоном, и настраивает свои шестеренки, чтобы получить как можно меньшую разницу. Наиболее оптимальная минимизация ошибки — градиентный спуск, а ошибка вычисляется функцией ошибка/стоимость.

Мелкая искусственная нейронная сеть

Многие считают, что искусственные нейронные сети — цифровые копии нашего неокортекса. Это не так. Мы слишком мало знаем о собственном мозге, чтобы требовать такое. Это было источником вдохновения для Фрэнка Розенблатта, создателя нейронных сетей.

Поиграйтесь с симулятором нейронной сети пару часов, чтобы примерно почувствовать, как это работает. Мы начнем с создания простой нейронной сети, чтобы познакомиться с синтаксисом TFlearn. Классическая проблема для начала — оператор OR. Хотя нейронные сети лучше подходят для других типов данных, для начала сойдет и такой вариант, чтобы понять, как это вообще работает.

Все программы глубокого обучения следуют одной логике:

  • Сперва подключаем библиотеки, импортируем и очищаем данные. Все входные данные интерпретируются как числа, неважно, изображения это, звуки или данные с сенсоров.
  • Эти длинные списки чисел — входные данные для нашей сети.
  • Теперь описываем нейронную сеть.
  • Выбираем тип и количество слоев сети.
  • Идет процесс обучения.
  • Сеть ищет корреляцию между входными данными и выходными.
  • Финальный шаг выводит предсказание, полученное обученной сетью.

Вот код нашей сети.

Строка 1
Комментарии начинаются с #

Строка 2
Подключаем библиотеку TFlearn, она позволит нам использовать функции глубокого обучения из Google Tensorflow.

Строки 5–6
Данные из таблицы сохраняются в списки. Точка в конце каждого числа преобразует их в числа с плавающей точкой. Это повысит точность вычисления.

Строка 9
Инициализируем сеть и определяем форму входных данных. Каждый оператор OR идет парой, таким образом имея форму, равную 2. None — дефолтное значение, представляющее размер серии.

Строка 10
Наш выходной слой. Параметр activation определяет функцию, отображающую выходные данные на слой. В нашем случае мы используем сигмоиду, которая отображает значение между 0 и 1.

Вот материал, который более подробно раскроет суть строк 9 и 10: tflearn.org/layers/core

Строка 11
Применяем регрессию. Параметр optimizer выбирает алгоритм минимизации функции потерь. Параметр learning rate определяет, как быстро нужно модифицировать сеть, и параметр loss определяет, как вычислять ошибку.

Строка 14
Выбираем, какую сеть использовать. Здесь же выбираем, где хранить логи обучения.

Строка 15
Тренируем сеть и модель. Выбираем входные данные (OR) и эталонную метку (Y_truth). Параметр n_epoch определяет, сколько раз мы прогоним данные через сеть. snapshot_epoch=True определяет, нужно ли валидировать модель после каждого прогона.

Строки 18–22
Вывод предсказания, сделанного обученной моделью. В нашем случае это вывод вероятности того, что вернется True/1.

Подробнее насчет строк 1422: tflearn.org/models/dnn

Вывод
Первый результат — комбинация [0.] & [0.], с вероятностью в 4% это true, и так далее. Выше можно увидеть, сколько обучений в итоге прошла модель. Поскольку данные помещаются в одну серию, это все равно что одна эпоха. Если данные слишком велики, чтобы поместиться в памяти, вам придется разбить их на части. loss — сумма ошибок по всем эпохам. SGD — стохастический градиентный спуск (Stochastic Gradient Descent), метод минимизации функции потерь. Iter показывает текущий кусок данных и общий размер данных.

Вы обнаружите подобную логику и синтаксис практически в любой сети, основанной на TFlearn. Лучший способ познакомиться с кодом поближе — изменить его и получить кучу ошибок.

Кривая потерь показывает количество ошибок на каждом шаге обучения. С Tensorboard вы можете визуально наблюдать за каждым экспериментом и развивать чувство того, какие параметры меняют обучение. Вот несколько вариаций изначального эксперимента, с которыми вы можете поиграться самостоятельно. Советую потратить несколько часов на то, чтобы освоиться с окружением и параметрами TFlearn.

  • Увеличьте количество обучений и эпох
  • Попробуйте поменять или добавить все возможные параметры к каждой функции, руководствуясь документацией: например, вместо tflearn.fullyconnected(g, 1, activation=’sigmo >Python и Tensorflow — самая распространенная связка для глубокого обучения. TFlearn — фреймворк высокого уровня, построенный поверх Tensorflow. Другой распространенный фреймворк — Keras. У него больше возможностей, но я нахожу синтаксис TFlearn более простым и понятным. Оба фреймворка работают поверх Tensorflow.

Вы можете запускать простые нейронные сети, используя CPU вашего ПК. Но многие эксперименты потребуют часов или даже недель на выполнение. Поэтому большинство используют современные GPU, часто в виде облачных сервисов.

Простейшее решение для облачной обработки на GPU — FloydHub. Если вы хотя бы немного умеете обращаться с командной строкой, у вас уйдет не больше пяти минут на запуск.

Установите floyd-cli, пользуясь документацией. Кроме того, у FloydHub есть чат в Intercom, на случай, если вы застряли на каком-то этапе. Давайте запустим вашу первую сеть в FloydHub, используя TFlearn, Jupyter Notebook, и Tensorboard. После установки и входа в FloydHub, скачайте необходимые файлы:

В браузере откроется дашборд FloydHub, и вам предложат создать новый проект под названием 101. Когда вы закончите с этим, вернитесь в терминал и повторите последнюю команду.

Теперь вы готовы к запуску сети на FloydHub.

Команда запуска проекта принимает различные параметры. Сейчас наши действия таковы:

  • Примонтируем датасет к FloydHub, используя параметр —data emilwallner/datasets/cifar-10/1:data. Мы можем просмотреть датасет (и вообще большинство публичных датасетов) прямо на FloydHub.
  • Используем облачный GPU с параметром —gpu
  • Подключаем Tensorboard с параметром —tensorboard
  • Запускаем задачу в режиме Jupyter Notebook с параметром —mode jupyter

Как только команда инициализирует Jupyter в браузере, откройте файл с именем start-here.ipnyb. Это простая нейронная сеть для знакомства с синтаксисом TFlearn. Мы подробно разобрались с ней выше.

В меню выберите Kernel > Restart & Run All. Если вы увидите сообщение, значит все работает. Зайдите в проект на FloydHub, и там вы найдете ссылку на Tensorboard.

Глубокая нейронная сеть

Глубокая сеть — сеть с несколькими скрытыми слоями. Работа сверточных сетей подробно разбирается в руководствах:

  • How Convolutional Neural Networks work, Youtube
  • CS231n Convolutional Neural Networks for Visual Recognition
  • CS231n Winter 2020: Lecture 7: Convolutional Neural Networks, Youtube

Мы же сосредоточимся на высокоуровневых принципах, которые применимы к большинству сетей.

Цель обучения сети в том, чтобы она могла делать предсказания по данным, на которых она не обучалась. Для этого нужно уметь обобщать, балансировать между обучением и забыванием. Вы хотите, чтобы сеть научилась отделять сигнал от шума, но также научилась забывать сигналы, найденные в данных для обучения.

Если сеть обучилась недостаточно, она остается недообученной. В противном случае она переобучена, когда сеть слишком полагается на данные обучения.

Регуляризация — процесс уменьшения переобучения путем забывания определенных сигналов из тренировочных данных. Чтобы лучше понять этот принцип, мы используем датасет CIFAR-10. Это 60 тысяч изображений в десяти категориях, таких как автомобили, грузовики и птицы. Цель — определить категории изображений.

В обычных условиях мы обработаем данные, очистим их и применим фильтры к изображению. Но для простоты мы сфокусируемся только на собственно нейронной сети. Вы можете запустить все примеры, пользуясь инструкцией из репозитория с примерами.

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

Выбор количества слоев

Давайте посмотрим, как отличается сеть с одним и тремя наборами слоев. Каждый набор состоит из слоев свертки, подвыборки и соединительного слоя. Первые два эксперимента — experiment-0-few-layers.ipynb и experiment-0-three-layer-sets.ipynb.

Глядя на графики в Tensorboard, мы заметим, что сеть с одним набором примерно на 15% аккуратнее сети с несколькими наборами. Дело в том, что сеть с несколькими наборами недообучена.

Посмотрите на графики Accuracy и Accuracy/Validation. Наилучший подход в глубоком обучении — разделить датасет пополам, одну половину используя в обучении, а вторую для валидации. Так вы определите, как хорошо нейронная сеть справляется с предсказанием на новых данных, то есть с ее способностью к обобщению.

Как мы видим, точность тренировочных данных выше точности данных для валидации. Фоновый шум и детали мешают сети хорошо работать на новых данных.

Для борьбы с переобучением вы можете ограничивать сложные функции и вводить шум в нейронную сеть. Общие методы регуляризации — ограничение функций и исключающие слои.

Исключающие слои

Регуляризация исключением похожа на демократию: вместо использования нескольких мощных нейронов мы распределяем мощность по всей сети.

Нейронная сеть вынуждена изучать несколько независимых представлений. При финальном предсказании у сети есть несколько отдельных паттернов. Вот пример нейронной сети с исключающим слоем. В этом сравнении обе сети одинаковы во всем, кроме наличия исключающего слоя.

В каждом слое сети нейроны работают независимо друг от друга. Некоторые нейроны вносят большее влияние, чем остальные. Исключающий слой случайным образом отбрасывает нейроны. Таким образом, каждый нейрон внесет свой вклад.

Второй популярный метод предотвращения переобучения — применение L1/L2 регуляторной функции на каждый слой.

L1 и L2 регуляризация

Скажем, вы хотите описать признаки лошади. Если описание будет слишком конкретным, вы исключите из выборки много лошадей. Однако если описание будет слишком размытым, в выборку попадут и другие животные. L1/L2 регуляризация помогает сети определить это различие.

Если мы сделаем сравнение сетей, аналогичное предыдущему эксперименту, мы получим похожий результат.

Нейронная сеть с регуляризацией показывает себя лучше сети без регуляризации.

Регуляторная функция L2 ограничивает влияние слишком сложных функций. Она вычисляет, как сильно каждая функция влияет на конечный результат, и вводит ограничивающие коэффициенты.

Размер серии

Еще один важный параметр — размер серии, количество данных на каждый шаг обучения. Ниже — сравнение результатов при большой и малой серии.

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

Большая серия сделает меньше шагов, но расход времени и памяти на каждый шаг больше.

Скорость обучения

Финальный эксперимент — сравнение сетей с малой, средней и высокой скоростью обучения.

Скорость обучения часто считается одним из важнейших параметров, учитывая ее влияние. Она определяет то, как корректируется изменение прогноза на каждом шаге. Если скорость слишком велика или низка, сеть может вообще не выдавать правильного результата, как мы видим на графике выше.

Нет единственного верного способа построить нейронную сеть. Во многом это постоянные эксперименты. Смотрите на результаты и пробуйте подбирать параметры. Если у вас есть доступ к большим вычислительным ресурсам, вы можете написать программу, которая будет подбирать параметры, основываясь на результатах.

Когда вы закончите с экспериментами, не забудьте остановить инстанс на FloydHub, выбрав в меню Cancel.

Следующие шаги

В официальном репозитории TFlearn вы найдете примеры хороших сверточных сетей. Разберитесь с тем, как они устроены, и попробуйте улучшить свою сеть. Лучший результат на сегодняшний день — 96.43% (Graham, 2015).

Прим. переводчика: в репозитории http://rodrigob.github.io/are_we_there_yet собрана таблица лидеров по разным датасетам, в том числе по CIFAR-10.

Кроме того, я рекомендую получше познакомиться с Python и командной строкой. Это поможет меньше отвлекаться на код и больше сосредоточиться на дизайне самой сети. Начните с курса по Python на Codeacademy, и курса по командной строке. Это займет у вас дня три, если вы возьметесь за это всерьез.

Об авторе (Эмиль Воллнер)

Это первая статья из серии статей о глубоком обучении. Я потратил десять лет на изучение человеческого обучения. Работаю в бизнес-школе Оксфорда, инвестировал в образовательные стартапы и построил бизнес в сфере технологического обучения. В прошлом году я поступил в Ecole 42, чтобы найти применение своим знаниям в сфере машинного обучения.

Вы можете следить за моим прогрессом в Твиттере. Если у вас есть вопросы или пожелания, оставьте комментарий в Медиум.


Первоначально публиковалось в блоге FloydHub.

Глубокое обучение считается чем-то вроде rocket science: звучит круто, выглядит сложно и содержит всякую математику. На самом деле все не так сложно. Вот вам перевод руководства по глубокому обучению «Deep Learning for Developers: Tools You Can Use to Code Neural Networks on Day 1» от Эмиля Волнера.

Текущая волна интереса к глубокому обучению началась лет пять назад. Экспоненциальный рост мощности компьютеров и истории успеха стали тому причиной. Глубокое обучение — технология, управляющая автомобилями, побеждающая людей в играх Atari и диагностирующая рак.

Приступая к изучению глубокого обучения, я потратил пару недель на исследования. Я выбирал инструменты, сравнивал облачные сервисы и просматривал онлайн-курсы. Оглядываясь назад, я понимаю, что мог бы начать создавать нейронные сети в первый же день. Вот об этом я и расскажу в этой статье.

Вам не нужна особая подготовка. Достаточно базового понимания Python, командной строки и Jupyter notebook.

Глубокое обучение — часть машинного обучения. Доказано, что это эффективный метод поиска паттернов в сырых данных, таких как звук или изображение. Скажем, вы хотите классифицировать картинки кошек и собак. Без специального программирования, сперва выделим границы изображения. Затем построим паттерны из набора изображений, и наконец выделим носы, хвосты и лапы. Так нейронная сеть в итоге классифицирует собак и кошек.

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

Основная логика

Представьте машину, собранную из случайного набора шестеренок. Шестеренки собраны в слои и взаимодействуют друг с другом. Изначально машина не работает. Шестеренки настроены случайным образом, и их нужно перенастроить так, чтобы машина заработала.

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

Теперь инженер настраивает каждую шестеренку, основываясь на том, какую ошибку она дает, и пытается запустить машину снова. Он опять вычисляет ошибку и настраивает каждую шестеренку. Его задача — продолжать этот процесс, пока машина не заработает так, как требуется.

Нейронные сети работают похожим образом. Они имеют данные на входе и требуемый результат на выходе, и настраивают шестеренки, чтобы найти корреляцию между первым и вторым. Получая входные данные, сеть меняет свои настройки, чтобы получить выходной результат. Затем сеть сравнивает результат с эталоном.

Для уменьшения ошибок сеть вычисляет разницу между текущим результатом и эталоном, и настраивает свои шестеренки, чтобы получить как можно меньшую разницу. Наиболее оптимальная минимизация ошибки — градиентный спуск, а ошибка вычисляется функцией ошибка/стоимость.

Мелкая искусственная нейронная сеть

Многие считают, что искусственные нейронные сети — цифровые копии нашего неокортекса. Это не так. Мы слишком мало знаем о собственном мозге, чтобы требовать такое. Это было источником вдохновения для Фрэнка Розенблатта, создателя нейронных сетей.

Поиграйтесь с симулятором нейронной сети пару часов, чтобы примерно почувствовать, как это работает. Мы начнем с создания простой нейронной сети, чтобы познакомиться с синтаксисом TFlearn. Классическая проблема для начала — оператор OR. Хотя нейронные сети лучше подходят для других типов данных, для начала сойдет и такой вариант, чтобы понять, как это вообще работает.

Все программы глубокого обучения следуют одной логике:

  • Сперва подключаем библиотеки, импортируем и очищаем данные. Все входные данные интерпретируются как числа, неважно, изображения это, звуки или данные с сенсоров.
  • Эти длинные списки чисел — входные данные для нашей сети.
  • Теперь описываем нейронную сеть.
  • Выбираем тип и количество слоев сети.
  • Идет процесс обучения.
  • Сеть ищет корреляцию между входными данными и выходными.
  • Финальный шаг выводит предсказание, полученное обученной сетью.

Вот код нашей сети.

Строка 1
Комментарии начинаются с #

Строка 2
Подключаем библиотеку TFlearn, она позволит нам использовать функции глубокого обучения из Google Tensorflow.

Строки 5–6
Данные из таблицы сохраняются в списки. Точка в конце каждого числа преобразует их в числа с плавающей точкой. Это повысит точность вычисления.

Строка 9
Инициализируем сеть и определяем форму входных данных. Каждый оператор OR идет парой, таким образом имея форму, равную 2. None — дефолтное значение, представляющее размер серии.

Строка 10
Наш выходной слой. Параметр activation определяет функцию, отображающую выходные данные на слой. В нашем случае мы используем сигмоиду, которая отображает значение между 0 и 1.

Вот материал, который более подробно раскроет суть строк 9 и 10: tflearn.org/layers/core

Строка 11
Применяем регрессию. Параметр optimizer выбирает алгоритм минимизации функции потерь. Параметр learning rate определяет, как быстро нужно модифицировать сеть, и параметр loss определяет, как вычислять ошибку.

Строка 14
Выбираем, какую сеть использовать. Здесь же выбираем, где хранить логи обучения.

Строка 15
Тренируем сеть и модель. Выбираем входные данные (OR) и эталонную метку (Y_truth). Параметр n_epoch определяет, сколько раз мы прогоним данные через сеть. snapshot_epoch=True определяет, нужно ли валидировать модель после каждого прогона.

Строки 18–22
Вывод предсказания, сделанного обученной моделью. В нашем случае это вывод вероятности того, что вернется True/1.

Подробнее насчет строк 1422: tflearn.org/models/dnn

Вывод
Первый результат — комбинация [0.] & [0.], с вероятностью в 4% это true, и так далее. Выше можно увидеть, сколько обучений в итоге прошла модель. Поскольку данные помещаются в одну серию, это все равно что одна эпоха. Если данные слишком велики, чтобы поместиться в памяти, вам придется разбить их на части. loss — сумма ошибок по всем эпохам. SGD — стохастический градиентный спуск (Stochastic Gradient Descent), метод минимизации функции потерь. Iter показывает текущий кусок данных и общий размер данных.

Вы обнаружите подобную логику и синтаксис практически в любой сети, основанной на TFlearn. Лучший способ познакомиться с кодом поближе — изменить его и получить кучу ошибок.

Кривая потерь показывает количество ошибок на каждом шаге обучения. С Tensorboard вы можете визуально наблюдать за каждым экспериментом и развивать чувство того, какие параметры меняют обучение. Вот несколько вариаций изначального эксперимента, с которыми вы можете поиграться самостоятельно. Советую потратить несколько часов на то, чтобы освоиться с окружением и параметрами TFlearn.

  • Увеличьте количество обучений и эпох
  • Попробуйте поменять или добавить все возможные параметры к каждой функции, руководствуясь документацией: например, вместо tflearn.fullyconnected(g, 1, activation=’sigmo >Python и Tensorflow — самая распространенная связка для глубокого обучения. TFlearn — фреймворк высокого уровня, построенный поверх Tensorflow. Другой распространенный фреймворк — Keras. У него больше возможностей, но я нахожу синтаксис TFlearn более простым и понятным. Оба фреймворка работают поверх Tensorflow.

Вы можете запускать простые нейронные сети, используя CPU вашего ПК. Но многие эксперименты потребуют часов или даже недель на выполнение. Поэтому большинство используют современные GPU, часто в виде облачных сервисов.

Простейшее решение для облачной обработки на GPU — FloydHub. Если вы хотя бы немного умеете обращаться с командной строкой, у вас уйдет не больше пяти минут на запуск.

Установите floyd-cli, пользуясь документацией. Кроме того, у FloydHub есть чат в Intercom, на случай, если вы застряли на каком-то этапе. Давайте запустим вашу первую сеть в FloydHub, используя TFlearn, Jupyter Notebook, и Tensorboard. После установки и входа в FloydHub, скачайте необходимые файлы:

В браузере откроется дашборд FloydHub, и вам предложат создать новый проект под названием 101. Когда вы закончите с этим, вернитесь в терминал и повторите последнюю команду.

Теперь вы готовы к запуску сети на FloydHub.

Команда запуска проекта принимает различные параметры. Сейчас наши действия таковы:

  • Примонтируем датасет к FloydHub, используя параметр —data emilwallner/datasets/cifar-10/1:data. Мы можем просмотреть датасет (и вообще большинство публичных датасетов) прямо на FloydHub.
  • Используем облачный GPU с параметром —gpu
  • Подключаем Tensorboard с параметром —tensorboard
  • Запускаем задачу в режиме Jupyter Notebook с параметром —mode jupyter

Как только команда инициализирует Jupyter в браузере, откройте файл с именем start-here.ipnyb. Это простая нейронная сеть для знакомства с синтаксисом TFlearn. Мы подробно разобрались с ней выше.

В меню выберите Kernel > Restart & Run All. Если вы увидите сообщение, значит все работает. Зайдите в проект на FloydHub, и там вы найдете ссылку на Tensorboard.

Глубокая нейронная сеть

Глубокая сеть — сеть с несколькими скрытыми слоями. Работа сверточных сетей подробно разбирается в руководствах:

  • How Convolutional Neural Networks work, Youtube
  • CS231n Convolutional Neural Networks for Visual Recognition
  • CS231n Winter 2020: Lecture 7: Convolutional Neural Networks, Youtube

Мы же сосредоточимся на высокоуровневых принципах, которые применимы к большинству сетей.

Цель обучения сети в том, чтобы она могла делать предсказания по данным, на которых она не обучалась. Для этого нужно уметь обобщать, балансировать между обучением и забыванием. Вы хотите, чтобы сеть научилась отделять сигнал от шума, но также научилась забывать сигналы, найденные в данных для обучения.

Если сеть обучилась недостаточно, она остается недообученной. В противном случае она переобучена, когда сеть слишком полагается на данные обучения.

Регуляризация — процесс уменьшения переобучения путем забывания определенных сигналов из тренировочных данных. Чтобы лучше понять этот принцип, мы используем датасет CIFAR-10. Это 60 тысяч изображений в десяти категориях, таких как автомобили, грузовики и птицы. Цель — определить категории изображений.

В обычных условиях мы обработаем данные, очистим их и применим фильтры к изображению. Но для простоты мы сфокусируемся только на собственно нейронной сети. Вы можете запустить все примеры, пользуясь инструкцией из репозитория с примерами.

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

Выбор количества слоев

Давайте посмотрим, как отличается сеть с одним и тремя наборами слоев. Каждый набор состоит из слоев свертки, подвыборки и соединительного слоя. Первые два эксперимента — experiment-0-few-layers.ipynb и experiment-0-three-layer-sets.ipynb.

Глядя на графики в Tensorboard, мы заметим, что сеть с одним набором примерно на 15% аккуратнее сети с несколькими наборами. Дело в том, что сеть с несколькими наборами недообучена.

Посмотрите на графики Accuracy и Accuracy/Validation. Наилучший подход в глубоком обучении — разделить датасет пополам, одну половину используя в обучении, а вторую для валидации. Так вы определите, как хорошо нейронная сеть справляется с предсказанием на новых данных, то есть с ее способностью к обобщению.

Как мы видим, точность тренировочных данных выше точности данных для валидации. Фоновый шум и детали мешают сети хорошо работать на новых данных.

Для борьбы с переобучением вы можете ограничивать сложные функции и вводить шум в нейронную сеть. Общие методы регуляризации — ограничение функций и исключающие слои.

Исключающие слои

Регуляризация исключением похожа на демократию: вместо использования нескольких мощных нейронов мы распределяем мощность по всей сети.

Нейронная сеть вынуждена изучать несколько независимых представлений. При финальном предсказании у сети есть несколько отдельных паттернов. Вот пример нейронной сети с исключающим слоем. В этом сравнении обе сети одинаковы во всем, кроме наличия исключающего слоя.

В каждом слое сети нейроны работают независимо друг от друга. Некоторые нейроны вносят большее влияние, чем остальные. Исключающий слой случайным образом отбрасывает нейроны. Таким образом, каждый нейрон внесет свой вклад.

Второй популярный метод предотвращения переобучения — применение L1/L2 регуляторной функции на каждый слой.

L1 и L2 регуляризация

Скажем, вы хотите описать признаки лошади. Если описание будет слишком конкретным, вы исключите из выборки много лошадей. Однако если описание будет слишком размытым, в выборку попадут и другие животные. L1/L2 регуляризация помогает сети определить это различие.

Если мы сделаем сравнение сетей, аналогичное предыдущему эксперименту, мы получим похожий результат.

Нейронная сеть с регуляризацией показывает себя лучше сети без регуляризации.

Регуляторная функция L2 ограничивает влияние слишком сложных функций. Она вычисляет, как сильно каждая функция влияет на конечный результат, и вводит ограничивающие коэффициенты.

Размер серии

Еще один важный параметр — размер серии, количество данных на каждый шаг обучения. Ниже — сравнение результатов при большой и малой серии.

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

Большая серия сделает меньше шагов, но расход времени и памяти на каждый шаг больше.

Скорость обучения

Финальный эксперимент — сравнение сетей с малой, средней и высокой скоростью обучения.

Скорость обучения часто считается одним из важнейших параметров, учитывая ее влияние. Она определяет то, как корректируется изменение прогноза на каждом шаге. Если скорость слишком велика или низка, сеть может вообще не выдавать правильного результата, как мы видим на графике выше.

Нет единственного верного способа построить нейронную сеть. Во многом это постоянные эксперименты. Смотрите на результаты и пробуйте подбирать параметры. Если у вас есть доступ к большим вычислительным ресурсам, вы можете написать программу, которая будет подбирать параметры, основываясь на результатах.

Когда вы закончите с экспериментами, не забудьте остановить инстанс на FloydHub, выбрав в меню Cancel.

Следующие шаги

В официальном репозитории TFlearn вы найдете примеры хороших сверточных сетей. Разберитесь с тем, как они устроены, и попробуйте улучшить свою сеть. Лучший результат на сегодняшний день — 96.43% (Graham, 2015).

Прим. переводчика: в репозитории http://rodrigob.github.io/are_we_there_yet собрана таблица лидеров по разным датасетам, в том числе по CIFAR-10.

Кроме того, я рекомендую получше познакомиться с Python и командной строкой. Это поможет меньше отвлекаться на код и больше сосредоточиться на дизайне самой сети. Начните с курса по Python на Codeacademy, и курса по командной строке. Это займет у вас дня три, если вы возьметесь за это всерьез.

Об авторе (Эмиль Воллнер)

Это первая статья из серии статей о глубоком обучении. Я потратил десять лет на изучение человеческого обучения. Работаю в бизнес-школе Оксфорда, инвестировал в образовательные стартапы и построил бизнес в сфере технологического обучения. В прошлом году я поступил в Ecole 42, чтобы найти применение своим знаниям в сфере машинного обучения.

Вы можете следить за моим прогрессом в Твиттере. Если у вас есть вопросы или пожелания, оставьте комментарий в Медиум.


Первоначально публиковалось в блоге FloydHub.

7 трюков для работы в Word, о которых знает далеко не каждый

Мы собрали несколько хитростей Microsoft Word, о которых вы не догадывались на протяжении долгих лет. Некоторые из них не несут пользы, зато от других вы останетесь под впечатлением.

1. Как найти положение курсора

Каждый раз, когда вы закрываете документ, Word запоминает страницу, на которой остановилась работа. При следующем открытии файла вам предложат начать с того же места. Удобно? Нет слов!

А теперь представьте: у вас есть многостраничный документ, например годовой отчёт или дипломная работа. Вы находитесь на энной странице и видите факты, которые нужно перепроверить далее по тексту. Погружаться предстоит глубоко, поэтому номер текущего листа нужно где-то записать. Как возвратиться обратно без напоминалки?

Оставьте курсор и постепенно перемещайтесь вниз. Чтобы вернуться к «якорю», нажмите комбинацию клавиш Shift + F5.

Эта команда мгновенно переместит вас к той строчке, куда вы загодя поместили курсор.

2. Как заполнить документ случайным текстом

Порой в Word нужен случайный массив из строк и абзацев. Например, чтобы опробовать новую функцию и показать её коллегам. Набрать его можно тремя способами: активно тарабанить по клавишам пару минут, скачать надстройку для Word или задать короткую команду.

Введите =lorem(2,3) и нажмите на клавишу «Ввод», чтобы Word создал два абзаца по три предложения. Цифры в скобках могут быть абсолютно любыми.

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

Читайте: 10 способов искать в Google так, как не умеет 98% его пользователей

3. Как использовать автотекст

Отдельный файлик с реквизитами компании или паспортными данными больше не нужен. В Word есть копилка текстовых отрывков, которыми можно пользоваться при первой необходимости. Это полезно в офисной работе, полной стандартных выражений и шаблонных писем.

Выделите текст и нажмите комбинацию клавиш Ctrl + F3 — фрагмент сохранится как автотекст. Вставьте его в документ с помощью Ctrl + Shift + F3.

Автотекст находится на вкладке «Вставка» в группе «Текст» в подразделе «Экспресс-блоки». Обратите внимание: автотекст можно отправить в разные части документа или поместить в колонтитулы.

4. Как быстро удалять слова, предложения, абзацы

Поговаривают, что средняя длина предложения в русском языке составляет приблизительно 10 слов. При этом средняя длина слова слегка превышает 5 букв. Получается, для того чтобы стереть одно предложение клавишей BackSpace, необходимо нажать её где-то 60 раз. Если не жалко кнопки, подумайте о своём времени.

Удерживайте Ctrl и нажмите на BackSpace, чтобы удалить слово целиком. Удерживайте Alt и нажмите на BackSpace, чтобы вернуть обратно случайно стёртое слово.

Для удаления фрагментов побольше не обойтись без быстрого выделения. Для целого предложения это один клик мышью с зажатой Ctrl, а для абзаца — тройной щелчок по любому слову.

5. Как успокоить глаза при долгом чтении

В общих параметрах Word есть тёмно-серая тема оформления. Некоторые пользователи находят её более щадящей для зрения: белый фон не так сильно бьёт по глазам, если вокруг него расположена контрастная рамка. Кроме этого, текстовый редактор предлагает упростить чтение длинных документов за счёт изменения цвета страниц.

Переключитесь на вкладку «Вид» и перейдите в режим чтения. Раскройте дополнительные параметры, чтобы сделать фон чёрным либо светло-коричневым.

Здесь же можно задать ширину столбца либо отобразить панель с примечаниями.

Читайте: 29 YouTube-каналов для обучения полезным навыкам

6. Как заменить все картинки в документе одним махом

Не ошибёмся, если предположим, что 9 из 10 пользователей Word не представляют своей жизни без функции «Найти и заменить». При этом почти никто из них не знает о её дополнительных возможностях.

Скопируйте изображение в буфер обмена, откройте текстовый редактор и вызовите диалоговое окно «Найти и заменить» (Ctrl + H). Введите в поле «Найти» значение ^g, а в поле «Заменить на» — ^c. Нажмите на «Заменить всё», чтобы удалить из документа все картинки и поместить на их место содержимое буфера обмена.

Теряемся в предположениях, зачем это нужно. К слову, такое же ощущение возникает у человека, если он обращается к Творцу за смыслом жизни. 🙂

7. Как использовать калькулятор

Word хорошо владеет школьной программой по арифметике. Убедиться в этом очень просто: достаточно вывести иконку калькулятора на панель быстрого доступа.

Перейдите к «Другим командам» в меню быстрого доступа. Переключитесь на «Все команды» и отыщите пункт «Вычислить». Добавьте его на панель быстрого доступа. Значок в форме круга будет неактивным до той поры, пока вы не выделите математическое выражение. Результат вычисления смотрите в левом нижнем углу.

Как видите, текстовый редактор знает порядок математических действий и понимает, что 2 + 2 × 2 не равняется 8.

Надеемся, что смогли вас удивить. Если же нет, попробуйте удивить нас сами в комментариях.

Глубокое обучение (Deep Learning): краткий туториал

Первым шагом к пониманию того, как работает глубокое обучение, является понимание различий между несколькими важными терминами.

Нейронная сеть (искусственная нейронная сеть) — это попытка воспроизведения работы человеческого мозга на компьютере при помощи слоев нейронов.

Искусственный интеллект — способность машины или программы находить решения при помощи вычислений.

Во время первых исследований в области ИИ ученые пытались воспроизвести человеческий интеллект для решения конкретных задач — например, игры с человеком. Было введено большое количество правил, которым должен следовать компьютер. На основе этих правил компьютер принимал решения в согласии с конкретным списком возможных действий.

Машинное обучение — это попытка научить компьютеры самостоятельно обучаться на большом количестве данных вместо жестко постулированных правил.

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

Контролируемое и неконтролируемое обучение

Контролируемое обучение (обучение с учителем, supervised learning) подразумевает использование помеченных наборов данных, содержащих входные данные и ожидаемые выходные результаты. Когда вы обучаете нейронную сеть с помощью контролируемого обучения, вы подаете как входные данные, так и ожидаемые выходные результаты.

Если результат, генерируемый нейронной сетью, неверен, она скорректирует свои вычисления. Это итерационный процесс, оканчивающийся тогда, когда сеть перестает совершать ошибки.

Примером задачи с контролируемым обучением является предсказание погоды. Нейросеть учится делать прогноз погоды с использованием исторических данных. Обучающие данные включают в себя входные данные (давление, влажность, скорость ветра) и выходные результаты (температура).

Неконтролируемое обучение (обучение без учителя, unsupervised learning) — это машинное обучение с использованием наборов данных без определенной структуры.

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

Глубокое обучение

Теперь вы подготовлены к изучению того, что такое глубокое обучение и как оно работает.

Глубокое обучение — это метод машинного обучения. Глубокое обучение позволяет обучать модель предсказывать результат по набору входных данных. Для обучения сети можно использовать как контролируемое, так и неконтролируемое обучение.

Разница между машинным и глубоким обучением

Рассмотрим, как работает глубокое обучение, на примере сервиса по оценке стоимости авиабилета. Мы будем обучать его контролируемым образом.

Мы хотим, чтобы наш сервис предсказывал цену на авиабилет по следующим входным данным:

  • аэропорт вылета;
  • аэропорт назначения;
  • дата отбытия;
  • авиакомпания.

Нейронные сети глубокого обучения

Давайте заглянем внутрь нашей модели. Как и у животных, искусственная нейронная сеть содержит взаимосвязанные нейроны. На диаграмме они представлены кругами:

Глубокая нейронная сеть (с двумя скрытыми слоями)

Нейроны сгруппированы в три различных типа слоев:

  • входной слой;
  • скрытый слой (слои);
  • выходной слой.

Входной слой принимает входные данные. В нашем случае имеется четыре нейрона на входном слое: аэропорт вылета, аэропорт назначения, дата вылета и авиакомпания. Входной уровень передает эти данные в первый скрытый слой.

Скрытые слои выполняют математические вычисления со входными данными. Одна из задач при создании нейронных сетей — определение количества скрытых слоев и нейронов на каждом слое.

Слово «глубина» в термине «глубокое обучение» означает наличие более чем одного скрытого слоя.

Выходной слой выдает результат. В нашем случае это прогноз цены на билет.

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

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

Каждый нейрон имеет функцию активации. Ее смысл трудно понять без привлечения математических рассуждений. Одной из ее целей является «стандартизация» данных на выходе из нейрона.

После того, как набор входных данных прошел через все слои нейронной сети, функция активации возвращает выходные результаты через выходной уровень.

Обучение глубокой сети

Обучение нейросети — самая сложная часть глубокого обучения. Почему?

  • Вам нужен большой набор данных.
  • Вам нужно большое количество вычислительной мощности.

Для оценки стоимости билета нужно найти исторические данные о ценах на билеты. Из-за большого количества возможных комбинаций аэропортов и дат вылета нам нужен очень большой список цен на билеты.

Для обучения сети нужно подать в нее подготовленные данные и сравнить сгенерированные ей выходные результаты с результатами из нашего тестового набора данных. Поскольку сеть еще не обучена, результаты будут неверными.

После пропуска всех данных можно определить функцию, которая будет показывать нам, насколько результаты работы алгоритма отличаются от реальных данных. Эта функция называется функцией потерь.

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

Как уменьшить значение функции потерь?

Нужно менять веса между нейронами. Можно делать это случайным образом до тех пор, пока функция потерь не станет равной нулю, но это не очень эффективно.

Вместо этого мы будем использовать метод градиентного спуска. Градиентный спуск — это метод, который позволяет найти минимум функции. В нашем случае мы ищем минимум функции потерь.

Суть метода состоит в небольшом изменении весов после каждой итерации. Вычисляя производную (или градиент) функции потерь при определенном наборе весов, можно определить, в каком направлении находится минимум.

Для минимизации функции потерь нужно многократно перебирать данные. Именно поэтому нам требуется большая вычислительная мощность. Уточнение весов с помощью градиентного спуска выполняется автоматически. В этом и состоит магия глубокого обучения!

После обучения можно использовать разработанный нами сервис для прогнозирования цен на авиабилеты.

В сухом остатке:

  • Глубокое обучение использует нейронную сеть для воспроизведения интеллекта животных.
  • Существует три типа слоев нейронов в нейронной сети: входной слой, скрытый слой (слои) и выходной слой.
  • Связи между нейронами имеют вес, определяемый важностью элемента входных данных.
  • Для обучения глубокой нейронной сети необходим реально большой набор данных.
  • Итерационно сравнивая выходные результаты со включенными в набор данными, можно вычислить функцию потерь, указывающую, насколько сильно ошибается алгоритм.
  • После каждой итерации (epoch) веса между нейронами перераспределяются с помощью метода градиентного спуска для минимизации функции потерь.


Машинное обучение глубокой нейронной сети с подкреплением на tensorflow.js: Трюки

Обучать глубокие нейронные сети с нуля — задача не из простых.

Требуется много данных и времени на обучение, но ускорить процесс могут помочь некоторые трюки, о которых я и расскажу под катом.

Демонстрация прохождения простого лабиринта с использованием трюков. Длительность обучения сети: 1 час 06 минут. Запись ускорена в 8 раз.

Под каждую задачу нужно разрабатывать собственный набор трюков для ускорения обучения сети. Я поделюсь несколькими приёмами, которые помогли мне обучить сеть намного быстрее.

За теоретическими знаниями рекомендую перейти на канал sim0nsays.
А я расскажу о своих скромных успехах в обучении нейронных сетей.

Постановка задачи

Аппроксимировать функцию схождения минимизируя квадратичную функцию потерь обратным распространением ошибки глубокими нейронными сетями.

У меня был выбор стратегии как обучать нейронную сеть.
Поощрять за успешное завершение поставленной задачи или поощрять по мере приближения к завершению поставленной задачи.

Я выбрал второй способ, по двум причинам:

  • Вероятность, что сеть когда либо самостоятельно доберётся до финиша очень мала, поэтому она будет обречена получать много отрицательного подкрепления. Это обнулит веса всех нейронов и сеть будет не способна к дальнейшему обучению.
  • Глубокие нейронные сети мощны. Не исключаю, что первый способ завершился бы успехом, если бы у меня были огромные вычислительные мощности и много времени на обучение. Я же пошёл по пути наименьших затрат — разработав трюки.

Архитектура нейронной сети

Архитектура разрабатывается экспериментально, основывается на опыте архитектора и удачи.

Архитектура для решения задачи:

  • 3 входных нейрона — координаты агента и значение пройденной ячейки (нормализуем в диапазоне от 0 до 1).
  • 2 скрытых слоя по 256 и 128 нейронов (уменьшаем размерность слоёв в сторону выхода сети).
  • 1 слой сброса случайных нейронов для устойчивости обучения сети.
  • 4 выходных нейрона — вероятности принятия решения выбора стороны для следующего шага.
  • Функция активации нейронов: sigmoid. Оптимизатор: adam.

sigmoid даёт на выходе 4 вероятности в диапазоне от 0 до 1, выбирая максимальный, получаем сторону для следующего шага: [jumpTop, jumpRight, jumpBottom, jumpLeft].

Разработка архитектуры

Переобучение возникает при использовании избыточно сложных моделей.

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

Недообучение — при недостаточно сложных моделей. Это когда у сети было мало тренировочных данных, чтобы найти обобщения.

Вывод: чем больше слоёв и нейронов в них, тем больше нужно данных для обучения.

Игровое поле

Правила игры

0 — Вступив на эту ячейка, агент уничтожается.
1..44 — Ячейки, значения которых увеличиваются с каждый шагом.
Чем дальше агент прошёл, тем большее вознаграждение он получит.
45 — Финиш. Обучения при этом не происходит, оно только когда все агенты уничтожены, а финиш — это исключение, которое просто использует уже обученную сеть для следующего прогнозирования с самого начала лабиринта.

Описание параметров

Агент имеет “усики” в четырёх направлениях от него — они играют роль разведки окружающей среды и являются описанием для координат агента и значения ячейки, на которой он стоит.

Описание играет роль прогнозирования следующего направления для движения агента. То есть, агент сканирует наперёд, что там дальше и соответственно со временем сеть обучается двигаться в сторону увеличения значения ячейки и не выходить за пределы допустимого перемещения.

Цель нейронной сети: получать бОльшее вознаграждение.
Цель обучения: поощрять за правильные действия, чем ближе агент к решению поставленной задачи, тем выше будет вознаграждение для нейронной сети.

Трюки

Первые попытки обучения без трюков, занимали по несколько часов обучения и результат был далёк от завершения. Применив определённые приёмы, результата удалось достичь всего за один час и шесть минут!

Зацикливание агентов

В ходе обучения, сеть начинала принимать решения, делать ходы туда-сюда — проблема “использования”. Оба хода дают сети положительное вознаграждение, что останавливало процесс исследования лабиринта и не давало выбраться из локального минимума.

Первой попыткой решения, было ограничение количества ходов агента, но это было не оптимально, так как агент тратил много времени в зацикливании, прежде, чем самоуничтожиться. Лучшим решением стало уничтожать агента, если он пошёл в ячейку с меньшим значением, чем на той, на которой он стоял — запрет идти в обратном направлении.

Исследовать или использовать

Чтобы исследовать пути вокруг текущего положения агента, был использован простой трюк: на каждом шагу, 5 агентов будут “добровольными” исследователями. Ход этих агентов будет выбран случайно, а не прогнозом нейронной сети.

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

Генетический алгоритм

Каждую эпоху на игровом поле участвуют 500 агентов. Прогнозирование для всех агентов выполняются в асинхронном режиме для всех агентов сразу, к тому же вычисления делегируются на gpu. Таким образом мы получаем более эффективное использование вычислительных мощностей компьютера, что приводит к сокращению времени на прогнозирование нейронной сети для 500 агентов одновременно.

Прогнозирование работает быстрее, чем обучение, следовательно сеть имеет больше шансов продвинуться дальше по лабиринту при наименьшем затрате времени и наилучшем результате.

Обучение на лучших в поколении

На протяжении эпохи, для 500 агентов сохраняются результаты их продвижения по лабиринту. Когда уничтожен последний агент, выбираются 5 лучших агентов из 500 — кто дошёл по лабиринту дальше всех.

На результатах лучших в эпохе, будет обучаться нейронная сеть.

Таким образом мы сократим объем использованной памяти не сохраняя и не обучая сеть на агентах, которые сеть не продвигают вперёд.

Завершение

Не являясь специалистом в данной области у меня получилось достичь некоторых успехов в обучении нейронной сети, получится и у Вас — дерзайте!

Стремитесь учиться быстрее компьютеров, пока у нас это получается лучше.

10 трюков, которые вы не сможете проделать со своим телом

Есть вещи, которые как мы считаем, может сделать практически каждый. Но если вы относитесь к большинству людей в мире, то, как бы вы не старались, вы не сможете это сделать.

Конечно, всегда есть исключения из правил, что и будет продемонстрировано в некоторых случаях.

Но наше тело устроено таким образом, что какие-то уловки являются практически невозможными.

1. Поднять одну бровь. Как научиться поднимать одну бровь?

Способность приподнимать брови является эволюционной чертой. Бабуины, мандрилы и капуцины поднимают брови в качестве жеста угрозы.

Хотя большинство людей не могут приподнять одну бровь, этому можно научиться.

— Начните с того, что держите одну бровь вниз одной рукой, а вторую приподнимите другой рукой.

— Продолжайте практиковать такой положение перед зеркалом, чтобы понять, какие движения мышц участвуют в приподнимании брови.

— Как только вы ознакомились с «механизмом», пробуйте сделать это без помощи рук.

— Тренируйтесь перед зеркалом, пока у вас не получится. Успехов!

2. Лизнуть свой локоть

Известно, что 99 процентов людей не могут лизнуть свой собственный локоть, а 90 процентов людей, которым об этом сообщили, сразу пытаются это сделать.

Для некоторых людей эта задача является вполне выполнимой, и ежедневно около 5 людей пытаются подать заявку в Книгу рекордов Гиннеса о способности лизнуть свой локоть.

3. Шевелить ушами. Как шевелить ушами?

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

Если вы не умеете шевелить ушами, есть несколько советов, которые помогут вам этого добиться:

— Чтобы научиться шевелить ушами, нужно найти мышцы, которые их двигают.

— Широко улыбнитесь и увидите, как ваши уши слегка приподнимутся. Также вы можете сжать ваши коренные зубы (моляры), чтобы почувствовать мышцы.

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

4. Достать языком до кончика носа или подбородка

Способность коснуться кончика носа или подбородка языком является генетической особенностью. Около 10 процентов людей могут выполнить это действие, и в 5 раз больше людей с синдромом Элерса-Данло, который вызывает гиперподвижность суставов.

Если вы относитесь к тем немногим, кто может выполнить этот трюк, можете попрактиковаться:

— Вытяните язык в прямую линию перед собой, как бы «поставив точку» кончиком языка.

— Опустите верхнюю губу вниз поверх верхнего ряда зубов.

— Помогая себе нижней губой, заверните язык поверх верхней губы, чтобы дотянуться до носа.

Помните, что не все смогут это сделать.

5. Язык трубочкой и другие трюки языком

Раньше считалось, что умение свернуть язык в трубочку является генетическим и определяется наличием доминантного гена. Сворачивание языка в трубочку часто являлось своеобразным тестом, показывающим наличие в классе доминантных и рецессивных генов. Однако последующие исследования на близнецах показали, что на эту способность влияют как генетика, так и среда.

Вот еще несколько трюков с языком, которые большинство людей не смогут сделать.

6. Чихнуть с открытыми глазами

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

Если же вы будете держать свои глаза открытыми во время чихания, могут ли они вылететь из орбит? Ведущие из телевизионного шоу «Разрушители мифов» попробовали это проделать.

7. Пощекотать самого себя

Почти у каждого из нас есть места, чувствительные к щекотке, и близкие люди знают, как этим воспользоваться.

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

8. Трюк с пальцами: «парализованный палец»

Проведите следующий эксперимент: согните средний палец, как показано на снимке и установите руку на столе. Теперь попробуйте приподнять большой палец, указательный и мизинец. А теперь попытайтесь приподнять безымянный палец. Не получилось?

Дело в том, что сухожилия ваших пальцев независимы друг от друга, за исключением тех, что находятся в среднем и безымянном пальце. Эти сухожилия связаны и потому, когда загнут средний палец, вы не можете пошевелить безымянным. Возникает ощущение, будто безымянный палец парализован.


9. Трюк ногами: рисовать цифру 6, двигая ногой по часовой стрелке

Вы может выполнять сразу несколько вещей одновременно? Попробуйте провести следующий эксперимент. Сидя на стуле, приподнимите правую ногу и рисуйте ногой круги по часовой стрелке. Пока вы это делаете, рисуйте цифру 6 правой рукой. Вы увидите, что ваша нога поменяла направление.

Попробуйте также крутить правой ногой против часовой стрелки и одновременно рисовать цифру 8 правой рукой.

Еще один трюк: одновременно крутите указательными пальцами обеих рук по часовой стрелке. Сначала делайте это медленно, а затем прибавьте скорость. Выполняйте задание как можно быстрее, и вскоре оба ваших пальца будут двигаться в противоположных направлениях.

10. Задохнуться, задержав дыхание. Как долго человек может задерживать дыхание?

Физически невозможно совершить самоубийство, задержав дыхание.

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

Вообще человек способен в два раза дольше задерживать дыхание под водой, чем на суше, зажав нос и рот (рекорд составляет 10 минут). В среднем человек может задержать дыхание на 30 секунд — 2 минуты под водой. Рекорд задержки дыхания под водой, который принадлежит фридайверу Стигу Северинсену и составляет 22 минуты.

iwtkl

Инженерный взгляд на вещи

Сейчас все кому не лень говорят о модных технологиях глубокого обучения, как будто это манна небесная. Но понимают ли говорящие, что это на самом деле? А ведь у этого понятия нет формального определения, и объединяет оно целый стек технологий. В этом посте я и хочу популярно, насколько это возможно, и по сути объяснить что стоит за этим термином, почему он так популярен и что дают нам эти технологий.

Если совсем коротко, то этот новомодный термин (deep learning) о том, как собрать из каких-то простых абстракции более сложную и глубокую абстракцию (репрезентацию) притом, что даже самые простые абстракции должен собирать сам компьютер, а не человек. Т.е. речь уже не просто об обучении, а о метаобучении. Образно говоря, компьютер самостоятельно должен научиться как лучше ему учиться. И, по сути, термин «глубокое» именно это и подразумевает. Практически всегда этот термин применяемся к искусственным нейронным сетям, где используется больше одного скрытого слоя, поэтому формально «глубокий» значит ещё и более глубокую архитектуру нейронной сети.

Вот на слайде в развитие хорошо видно, чем отличается глубокое обучение, от обычного. Повторюсь, уникальным для глубокого обучения является то, что машина сама находит признаки (ключевые черты чего-либо, по которым легче всего разделять один класс объектов от другого) и признаки эти структурирует иерархично: из более простых складываются более сложные. Ниже мы разберем это на примере.

Давайте посмотрим на примере задачи распознавания изображений: раньше как — запихивали в обычную нейронную сеть с одним слоем огромную (1024×768 — около 800 000 числовых значений) картинку и смотрели как компьютер медленно умирает, задыхаясь от нехватки памяти и неспособности понять, какие пиксели важны для распознавания, а какие нет. Не говоря уже об эффективности такого способа. Вот архитектура такой обычной (неглубой) нейронной сети.

Потом все же прислушались к тому, как выделяет признаки мозг, а делает он это строго иерархично, и тоже решили извлекать из картинок иерархичную структуру. Для этого необходимо было добавить больше скрытых слоев (слоев, которые находятся между входом и выходом; грубо говоря, этапов преобразования информации) в нейронную сеть. Хотя решили так делать практически сразу, как изобрели нейронки, но тогда успешно обучались сети только с одним скрытом слоем. Т.е. в принципе глубокие сети существуют примерно столько же, сколько обычные, просто мы не могли их обучить. Что же поменялось?

В 2006 году сразу несколько независимых исследователей решили эту проблему (к тому же аппаратные мощности развились уже достаточно, появились достаточно мощные видеокарты). Эти исследователи: Джеффри Хинтон (и его коллега Руслан Салахутидинов) с техникой предварительного обучения каждого слоя нейросети ограниченной машиной Больцмана (простите меня за эти термины. ), Ян Лекун с сверточными нейронными сетями и Йошуая Бенджио с каскадными автокодировщиками. Первые два сразу же были рекрутированы Google и Facebook, соответственно. Вот две лекции: одна — Хинтона, другая — Лякуна, в которых они и рассказывают, что такое глубокое обучение. Лучше их об этом не расскажет никто. Ещё одна классная лекция Шмидхубера про развитие глубокого обучения , тоже одного из столпов этой науки. А у Хинтона ещё есть прекрасный курс на курсере по нейронкам.

На что способны глубокие нейронные сети сейчас? Они способны распознавать и описывать объекты, можно сказать «понимают» что это. Речь идет о распознавании смыслов.

Просто посмотрите это видео распознавания того, что видит камера, в реальном времени.

Как я уже сказал, технологии глубокого обучения — это целая группа технологий и решений. Несколько из них я уже перечислил абзацем выше, другой пример — это рекуррентные сети, которые как раз используются в видео выше для описания того, что видит сеть. Но самый популярный представитель технологий данного класса — это все-таки сверточные нейронные сети ЛяКуна. Они построены по аналогии с принципами работы зрительной коры мозга кошки, в которой были открыты так называемые простые клетки, реагирующие на прямые линии под разными углами, и сложные — реакция которых связана с активацией определенного набора простых клеток. Хотя, честно говоря, сам ЛяКун не ориентировался на биологию, он решал конкретную задачу (смотрите его лекции), а потом так совпало.

Если совсем просто, то сверточные сети — это такие сети, где основным структурным элементом обучения является группа (сочетание) нейронов (обычно квадрат 3×3,10×10 и т.д.), а не один. И на каждом уровне сети обучаются десятки таких групп. Сеть находит такие сочетания нейронов, которые максимизируют информацию об изображении. На первом уровне сеть извлекает самые базовые, структурно простые элементы картинки — можно сказать, строительные единицы: границы, штрихи, отрезки, контрасты. Повыше — уже устойчивые комбинации элементов первого уровня, и так далее вверх по цепочке. Хочу ещё раз отдельно подчеркнуть главную особенность глубокого обучения: сети сами формируют эти элементы и решают, какие из них более важный, а какие — нет. Это важно, так как в области машинного обучения, создание признаков — является ключевым и сейчас мы переходим на этап, когда компьютер сам учится создавать и отбирать признаки. Машина сама выделяет иерархию информативных признаков.

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

На втором уровне — это уже будет элемент из элементов первого уровня. На третьем — из второго. Надо понимать, что данная картинка — просто демонстрация. Сейчас в промышленной применение, такие сети имеют от 10 до 30 слоев (уровней).

После того, как такая сеть обучилась — мы можем её использовать для классификации. Подав на вход какое-то изображение, группы нейронов первого слоя пробегаются по изображению, активируясь в тех местах, где есть соответствующий конкретному элементу элемент картинки. Т.е. эта сеть разбирает картинку на части — сначала на черточки, штрихи, углы наклона, потом более сложные части и в конце она приходит к выводу, что картинка из такого рода комбинации базовых элементов — это лицо.
Подробнее про сверточные сети — 1, 2, 3. Подробнее про нейронные сети вообще — 1, 2, 3, 4, 5, 6, 7, 8, 9.

Теперь ещё немного картиночек. Вот, например, композитное изображение, которое соответствует оптимальному (идеальному) стимулу для нейрона-классификатора кошки.

Вот как будет выглядеть картинка, отрисованная нижним слоем, отвечающим за края.

Как работает такой алгоритм легко можно убедиться, закинув в Яндекс или Google любую картинку. Иногда результат поражает. Можно сфотографировать, например, какое-то украшение у человека, закинуть в поисковике и найти где его купить, даже не зная названия. А в будущем можно будет сфотографировать человека и найти его профиль в сети. Уже не говоря о других применениях — анализе медицинских изображений (причем любых, надобнасть в людях в этой области скоро будет не нужна), улучшении качеств автопилотирования, окрашивании черно-белых фотографий (да, это тоже делают сверточные НС), поиске людей дронами (ещё), распознавание страны по фотографии, идентификации человека по клавиатурному подчерку (да, технологии дадут больше возможностей за контролем в интернете, а эта технология уже применяется на курсере), распознавании не только эмоционального состояния по голосу, но и роста/веса, и даже рисовании в стиле различных художников. И ещё, если раньше традиционной область НС было — распознавание звуков и изображений, то последнее время сети перестали этим ограничиваться. Речь про AlphaGo. Более того, есть и ещё больший прогресс в освоение такого рода архитектуры НС (подробнее).

Остается вопрос — насколько такие сети действительно близки к человеческому интеллекту? Понимают ли они то, что классифицируют или нет? На этот вопрос ответ будет через неделю, а сейчас напоследок представляю вам рисунок, нарисованной сверточной сетью.

9 секретов Skyrim, о которых вы не знали

Горячие новости

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

1. Использовать щит в качестве оружия

При прокачанном уровне блока вы сможете сбивать своим щитом противников с ног, а затем добивать их.

2. Получить спутника, который никогда не умирает

Когда вы начинаете квест «Лучший друг Диадеры», то получаете говорящую собаку Барбас, которая будет с вами вплоть до момента, пока вы не выполните квест. Всё очень просто. Игнорируйте задание, и собака останется с вами и никогда не умрёт.

3. Понтово стрелять из лука

Этот ролик уже давно ходит в сети. Если вам нечем заняться, то можете попрактиковаться и выполнить аналогичный трюк.

4. Обзавестись непредсказуемым оружием

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

5. Красть так, чтобы за это ничего не было

Это старый забавный способ как обокрасть дурилку при помощи котелка. На случай если вы были в танке или может быть только что вышли из комы, то посмотрите, как это делается.

6. Обзавестись кем-нибудь кто будет зарабатывать для вас деньги и готовить еду (ещё это называют женитьбой или замужеством)

Как это всё устроить мы уже писали подробно. Тут же представлена краткая видео инструкция.

7. Получить бесплатный урок стрелкового мастерства

Тут всё просто. Надо нагло воспользоваться доверчивостью Фаендала. Сначала просите его обучить вас мастерству, конечно же, платите ему за это, дабы не обидеть, а затем просто делаете своим последователем. Заходите к нему в инвентарь, забираете всё золото и отпускаете гулять с миром. Вуаля, вы научились прекрасно стрелять из лука и не потратили на это денег.

8. Прокатиться на уникальной лошади

Тут представлена инструкция, как обзавестись одной из двух уникальных лошадей в Skyrim, которые обладают большей выносливостью, чем обычные жеребцы. Лошадку зовут Фрост и чтобы её получить, надо выполнить квест «Обещание сохранить» (Promises To Keep).

9. Не чувствовать нужды в камнях души

Для этого вам понадобится очень полезный предмет под названием Звезда Азуры (Azura’s Star). Данная штуковина является неиссякаемым источником камней души и не исчезает из вашего инвентаря. Использовать эту звезду можно для зарядки или зачарования оружия.

10 способов казаться умнее на совещаниях Материал редакции

Комедиант и дизайнер Сара Купер опубликовала в своём блоге на Medium материал о десяти способах показаться умнее на рабочих встречах и совещаниях.

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

1. Нарисуйте диаграмму Эйлера — Венна

Встать и нарисовать диаграмму Венна — хороший способ выглядеть умным. Не имеет значения, если диаграмма не очень точная — на самом деле, чем она грубее, тем лучше. Ещё прежде чем вы успеете положить маркер на место, ваши коллеги начнут спорить о том, какими именно должны быть подписи и насколько большими нужно рисовать круги. В этот момент вы можете скользнуть обратно в своё кресло и продолжить играть в Candy Crush на телефоне.

2. Переводите проценты в доли

Если кто-то говорит: «Около 25% всех пользователей нажимают на эту кнопку», вы должны быстро встрять и заявить, что это «около одной четверти». И пометьте себе это в блокноте. Все кивнут, соглашаясь, втайне впечатлившись вашими стремительными математическими навыками.

3. Убеждайте всех «сделать шаг назад»

В каждой встрече наступает момент, когда все участвуют в разговоре, кроме вас. Мнения, факты и важные мысли вбрасываются тут и там, и вы не можете вычислить свою CTA из своей OTA. И это прекрасный момент, чтобы заявить: «Ребята, ребята, можем здесь отступить назад?». Все повернут к вам голову, восхищённые вашей способностью приглушить схватку. Теперь быстро произнесите: «Чего конкретно мы пытаемся добиться?». И вот оно! Вы добыли себе возможность выглядеть умным ещё один час.

4. Продолжительно кивайте, делая вид, что делаете заметки

Всегда носите с собой блокнот. Ваш отказ от технологий будут почитать. Делайте заметки, просто записывая по одному слову из каждого предложения, которое вы слышите. При этом кивайте без остановки. Если кто-нибудь спросит вас об этом, быстро скажите, что это ваши личные заметки, и кто-то другой должен конспектировать встречу целиком. Bravo compadre. Вы спасли свой зад, а также отмазались от дополнительной работы. Или от любой работы вообще, если достигните определённого мастерства.

5. Повторите последнее, что сказал программист, но очень-очень медленно

Мысленно возьмите на заметку разработчика, который находится в комнате. Запомните его имя. На протяжении почти всей встречи он будет молчать, но когда придёт его время говорить, всё, что он скажет, будет источником блестящей мудрости. После того, как он изречёт эти божественные слова, вклиньтесь с «Дайте мне это повторить», и повторите в точности то, что он сказал, но очень, очень медленно. Теперь его блистательная мудрость передалась и вам. Люди, вспоминая эту встречу, по ошибке будут приписывать это блестящее изречение вам.

6. Задавайте вопрос «Будет ли это масштабироваться?» вне зависимости от того, что стоит на повестке

Очень важно выяснить, будет ли расти масштаб — независимо от того, что именно обсуждается. Никто на самом деле не знает, что это значит, но это хороший всеобъемлющий вопрос, который всегда подходит к ситуации и немного выводит разработчиков из себя.

7. Расхаживайте по комнате

Когда кто-то встаёт из-за стола и начинает ходить кругами, разве вы не начинаете моментально его уважать? Конечно, да. Это требует немалой смелости, но как только вы это сделаете, вы тут же будете выглядеть умнее. Сложите руки. Расхаживайте по комнате. Пройдите в угол и прислонитесь к стене. Сделайте глубокий, созерцательный вдох. Поверьте, все будут изнемогать в попытке понять, о чём же вы думаете. Ох, если бы они знали, что о беконе.

8. Попросите выступающего вернуться на слайд назад

Эти слова не хочет слышать ни один выступающий. Не имеет значения, в какой момент презентации вы это произнесёте, это моментально даст понять, что вы следите за выступлением внимательнее, чем остальные, потому что они определённо пропустили ту самую вещь, на которую вы собираетесь блестяще указать. Нет такой вещи? Просто скажите что-то вроде: «Не уверен, что обозначают эти числа», и сядьте на место. Вы только что обеспечили себе впечатление умного человека, которое продержится на протяжении всей встречи.

9. Выйдите, чтобы позвонить

Вероятно, вы боитесь выходить из комнаты, потому что считаете, что люди подумают, будто вы не считаете встречу важной. Однако, как ни странно, если вы отойдёте ради «важного» звонка, они поймут, насколько вы важный и занятой человек. Они скажут: «Вау, эта встреча очень важна, и если у него есть какие-то ещё более важные дела, то лучше не будем ему мешать».

10. Посмейтесь над собой

Если кто-то спросит, что вы думаете — а вы, будем честны, пропустили мимо ушей абсолютно всё, что произносилось на протяжении последнего часа, — просто скажите: «Если честно, я не слышал ни слова из того, что обсуждалось за последний час». Люди любят самоуничижительный юмор. Говорите что-то вроде «Возможно, мы можем обратиться к адвокатам, которые занимаются моим разводом», или «Г-споди, вот бы я сейчас умер». Они посмеются, оценят вашу честность, подумают обратиться в отдел кадров, но, что самое важное, подумают, что вы самый умный человек в комнате.

25 психологических трюков, которые реально работают

Знание азов психологии является хорошим подспорьем в жизни. А эти простые ✅психологические трюки помогут вам решать самые разные жизненные проблемы и добиваться своей цели.

Сегодня мы поделимся с вами крутыми и полезными психологическими трюками. Они и правда работают. Прежде чем начать, хотим сказать: мы не оправдываем поступки людей, прибегающих к манипуляциям для достижения целей. Тем не менее, есть масса приёмов, о которых надо знать. Они очень пригодятся в жизни. Другие люди могут управлять вами для своей выгоды (весь рекламный маркетинг построен на подобных принципах). В нашей очередной подборке специально для вас — лучшие психологические трюки.

Самые эффективные психологические трюки

Подарки

Даже незначительный презент может тронуть человека до глубины души

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

Страдательный залог

Не стоит применять в общении метод прямого обвинения: он вызывает у собеседника рефлекторное отрицание

Чтобы не входить в конфронтацию с собеседником, но донести своё мнение, используйте в речи пассивный (страдательный) залог. Например, вместо «Ты не посылала мне электронную таблицу», скажите так: «Электронные таблицы не были отправлены».

Приём десяти минут

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

Не чувствуете мотивации делать какую-то работу? Тогда всё равно заставьте себя делать её хотя бы на протяжении 10 минут. Даже если вы не сможете продолжить, 10 минут лучше, чем ничего.

Будьте уверенным

Зачастую окружающие принимают уверенного в себе человека за авторитетного, обладающего лидерскими качествами

Ведите себя как человек, который знает, что делает — и окружающие будут доверять вам. Конечно же, нельзя использовать данную уловку в противозаконных целях. И все же, проверено: в сложных ситуациях этот приём действительно работает.


Страх потери

На страхе потери спекулируют многие рекламодатели и менеджеры

Люди боятся что-то терять. Потому так успешна реклама «осталось два места слева» при сбыте билетов на автобус. Такой же принцип используют для стабильности продаж — он мотивирует людей купить товар. Помните об этой хитрости, и вы не станете жертвой манипуляций.

Иллюзия выбора

Иллюзия выбора потому считается иллюзией, что главная её цель — манипуляция, где при любом выборе инициатор игры одерживает победу

Вам надо заставить ленивого сослуживца или ребёнка сделать что-то? Дайте им лже-выбор! Что это значит? Если надо подмести пол и сложить бельё, просто спросите: «Ты хочешь складывать или подметать»? Они получат ощущение контроля, и примутся за работу с большим энтузиазмом.

Метод «Дверью по лицу»

Человек испытывает неудобство, отказывая в просьбе; и потому он с радостью помогает, если требования существенно снижаются

Этот маркетинговый трюк гласит: сначала потребуй от человека недосягаемого, а потом — того, чего хочешь на самом деле. Другими словами, если мечтаешь о щенке, сначала попроси пони.

Приём «Ногою в дверь»

Приучив кого-либо оказывать мелкие услуги, нетрудно сподвигнуть его и на что-то грандиозное. Человек привыкает к тому, что он обязан помогать

Этот трюк — ярая противоположность «двери в лицо». Если вы просите о маленьких услугах, то впоследствии люди станут склонны выполнять и нечто большее для вас.

Молчание — золото

Люди боятся затяжных пауз во время бесед. Достаточно лишь вспомнить тягостные моменты, когда за праздничным столом зависает молчание

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

Открытый язык тела

Одним из главных признаков открытости человека являются руки, разведённые в стороны, повёрнутые ладонями вверх

Чтобы выглядеть более уверенно, используйте язык открытых жестов и поз в той или иной ситуации. Старайтесь не скрещивать руки на груди, использовать открытый взгляд и так далее.

Метод «Зеркало»

Каждый восхищается позитивными чертами в окружающих, которыми обладает он сам. Но и в других мы ненавидим то, что чувствуем в самих себе

Слегка подражая человеку, вы сможете настроиться «на его волну», вызвав у него расположение к своей персоне. Только не переборщите, чтобы не показаться странным и не оттолкнуть от себя собеседника.

Маленькие услуги

Желание быть нужным и причастным к коллективу других людей генетически заложено в нас с момента зарождения человечества

Когда вы просите о чем-то, или другие люди просят вас, у каждого появляется ощущение, что в нём нуждаются. Такое выражение благосклонности способствует сближению между людьми. Разумеется, речь идёт о небольших благодеяниях, и тут важно не переусердствовать.

Соглашайтесь

Базируйте общение на том, что вас объединяет с оппонентом; таким образом можно прийти к взаимовыгодному согласию

Это может стать мощным оружием, в особенности если вы — против. Поначалу обязательно найдите общий язык с собеседником. Например: «Я с вами согласен, но…», или же: «Я понимаю это, однако…»

Метод Тома Сойера

Заинтересовать и заставить работать — эффективный метод, который очень активно используется в теории управления

Известный герой романа Марка Твена применил мудрый психологический трюк. В чём он заключается? Если не хочешь что-то делать, притворись, что эта работа — интересная и весёлая. Возможно, кто-то вдохновится и выполнит её вместо тебя?

Признавайте свои ошибки

Обличая себя в маленьких недочётах, вы даёте другим ощущение величия, такому самокритичному человеку готовы простить многое

Хороший способ выстроить доверие — признавать свои ошибки, особенно мелкие. Также стратегически верно (хоть и неправильно с точки зрения этики) – взять вину за проступок, которого не совершал. Использование такого метода увеличивает степень доверия к человеку в дальнейшем.

Сохраняйте нейтралитет

Взвешенный подход ко всем ракурсам проблемы помогает решить её более эффективно

Этот способ — один из лучших секретов убеждения в мире. Покажите собеседнику, что готовы принять разные аргументированные доводы, и у того будет больше поводов вам доверять.

Оценивающий взгляд

Главное при встрече с подозрительными личностями — не показывать страха

Если вы часто гуляете по городу, этот приём может пригодиться. Когда увидите кого-то подозрительного, поймайте его взгляд (но не смотрите при этом угрожающе). Теперь посмотрите вниз, на ноги, после чего опять — в глаза. В итоге быстро отведите взгляд в сторону и продолжайте путь. Это молчаливое «оценивание» подаст сигнал, что вы не увидели в человеке угрозы. PS: такой метод хорошо сработает, если у вас уверенный шаг и статная осанка. Но даже если вы считаете себя невысоким, представьте себя большим и сильным, это поможет в данной ситуации.

Не спорьте по главному вопросу

Грамотное построение дискуссии помогает в решении многих, даже самых глобальных, проблем

Если вы участвуете в переговорах, не оспаривайте свою основную точку зрения. Лучше сразу перейдите к второстепенным аргументам. Например: вы хотите построить стену. Не спорьте о том, будет она построена или нет. Немедленно коснитесь вопроса, кто оплатит постройку. Тогда люди сочтут само существование стены как необходимость.

Улыбка для ребёнка

Азами невербального взаимодействия с окружающими младенец обладает практически с рождения

Если вы не являетесь родителем, ловите один секрет, меняющий ход жизни… улыбнитесь плачущему ребёнку, и произойдёт чудо! Вы будете приятно удивлены при виде того, как быстро сменится настроение малыша.

Укусите ручку

При улыбке наш организм посылает сигналы в мозг, а тот начинает вырабатывать эндорфины, гормоны радости

Такое странное действие вызовет у вас улыбку. Почему это произошло? Заставив себя улыбнуться (даже штучным методом), вы действительно почувствуете себя счастливее.

Избегайте говорить «но», или «однако»

Слово «но» собеседником воспринимается как отказ. Грамотно формулируйте предложения, так вы избавитесь от неудобных моментов в общении

Вы заметили, что даже в нашем информационном топе была использована приставка «но» – для выражения согласия? Хотя правда заключается в том, что люди более восприимчивы к словосочетанию «да, и…», чем к «да, но…».

Используйте имена

Каждому человеку приятно, когда его называют по имени

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

Позвольте людям говорить

Умение внимательно слушать является очень редким на сегодняшний день

Даже если вы владеете информацией, разрешите человеку поучать вас, или показывать что-то, с его точки зрения, важное. Люди обожают учительствовать. Хотите, чтобы собеседник реально получал удовольствие от общения с вами? Просто позвольте ему говорить о себе любимом.

Вам предстоит интервью по телефону?

В офисных костюмах не увидишь ярких кричащих деталей, поскольку они рассеивают внимание

Наденьте свою деловую одежду, и это на полном серьёзе! Даже несмотря на то, что интервьюирование планируется в телефонном режиме, вы почувствуете себя более собранно и уверенно.

Да, я помню, ты рассказывал(а) мне об этом

Каждый из нас имеет в своём арсенале «коронные» рассказы. Некоторые из таких хочется озвучивать снова и снова

Если человек рассказывает что-то в очередной раз, не обрывайте его: «Я уже слышал это от тебя». Мягко напомните визави: вы не забыли его слова, и нет необходимости повторять информацию. Тем не менее, ваш собеседник поймёт: вы цените то, о чём он говорит.

Теперь вы знаете о психологических приёмах намного больше. Многие закономерности вы наблюдали в общении с близкими, сотрудниками, во время просмотра телевизионных реклам. Нашей целью было привлечь ваше внимание к таким явлениям. Надеемся, что теперь вы сможете более продуктивно решать межличностные проблемы и вовремя распознавать попытки манипулирования.опубликовано econet.ru.

P.S. И помните, всего лишь изменяя свое сознание — мы вместе изменяем мир! © econet

Понравилась статья? Тогда поддержи нас, жми:

9 секретов Skyrim, о которых вы не знали

Горячие новости

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

1. Использовать щит в качестве оружия

При прокачанном уровне блока вы сможете сбивать своим щитом противников с ног, а затем добивать их.

2. Получить спутника, который никогда не умирает

Когда вы начинаете квест «Лучший друг Диадеры», то получаете говорящую собаку Барбас, которая будет с вами вплоть до момента, пока вы не выполните квест. Всё очень просто. Игнорируйте задание, и собака останется с вами и никогда не умрёт.

3. Понтово стрелять из лука

Этот ролик уже давно ходит в сети. Если вам нечем заняться, то можете попрактиковаться и выполнить аналогичный трюк.

4. Обзавестись непредсказуемым оружием

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

5. Красть так, чтобы за это ничего не было

Это старый забавный способ как обокрасть дурилку при помощи котелка. На случай если вы были в танке или может быть только что вышли из комы, то посмотрите, как это делается.

6. Обзавестись кем-нибудь кто будет зарабатывать для вас деньги и готовить еду (ещё это называют женитьбой или замужеством)

Как это всё устроить мы уже писали подробно. Тут же представлена краткая видео инструкция.

7. Получить бесплатный урок стрелкового мастерства

Тут всё просто. Надо нагло воспользоваться доверчивостью Фаендала. Сначала просите его обучить вас мастерству, конечно же, платите ему за это, дабы не обидеть, а затем просто делаете своим последователем. Заходите к нему в инвентарь, забираете всё золото и отпускаете гулять с миром. Вуаля, вы научились прекрасно стрелять из лука и не потратили на это денег.

8. Прокатиться на уникальной лошади

Тут представлена инструкция, как обзавестись одной из двух уникальных лошадей в Skyrim, которые обладают большей выносливостью, чем обычные жеребцы. Лошадку зовут Фрост и чтобы её получить, надо выполнить квест «Обещание сохранить» (Promises To Keep).

9. Не чувствовать нужды в камнях души

Для этого вам понадобится очень полезный предмет под названием Звезда Азуры (Azura’s Star). Данная штуковина является неиссякаемым источником камней души и не исчезает из вашего инвентаря. Использовать эту звезду можно для зарядки или зачарования оружия.

Мастер Йода рекомендует:  Где в интернете заработать реальные деньги
Добавить комментарий