Re[4]: дообучить сеть
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 13.11.20 09:01
Оценка: 40 (4)
Здравствуйте, Sharov, Вы писали:

S>Все никак руки не дойдут спросить на одс, спрошу тут: что значит "дообучить" сеть?


В принципе так. В общем, техника называется transfer learning.

Если сказать более общно, но классическое машинное обучение делилось на 2 части: какие признаки выбрать и какой классификатор на них обучить. Это может быть Haar features + AdaBoost, LBP + AdaBoost, HOG + SVM, Integral Channel features + Random forest — великое множество всего. Раньше поиском фич в больших конторах занимались отдельные люди, другие работали над классификаторами. Фурье, вейвлеты, фильтры Габора — всё это годилось для получения фич. Надо сказать, что и сейчас многое годится и используется для нейросетей в том числе.

Теперь про нейросети. Мы считаем, что обученная на большом датасете сеть учится не столько распознавать объекты, сколько очень эффективно выделять значимые особенности, в частности картинок — фичи. Собственно, именно этим и ценны нейросети: мы можем сами не знать, что наиболее важно для распознавания, а сети выучиваются этому. Классификацией занимается, например, последний полносвязный слой. Далее для распознавания лицо/не лицо, мы выкидываем этот последний слой и заменяем его своим с двумя выходами. И начинаем учить уже исключительно на картинках с лицами и без них. При этом остальную сеть можно считать уже хорошо обученной на выделение всех необходимых особенностей лиц в том числе, веса замораживаются и не меняются во время этого финального обучения. Как показывается практика, в большинстве случаев такой подход оказывается робастней, чем обучение исключительно на целевом датасете. Почему? отому что чаще всего на картинки похожи на то, что было на том же ImageNet. Если же совсем не похожи, то уже начинается пляска.

Но этот подход таит в себе и слабость нейросетей, о которой говорил Вжик2, но почему-то считая это тайной нейросетей. Слабость — неустойчивость классифифкации к небольшим изменениям входных данных: небольшой невидимый глазу шум, влияние небольших деталей на результат распознавания, излишнаяя привязка к текстуре и т.д.
Получается, что камера, снимающая ночью, добавляет много самых разных шумов и ничего не распознаётся. Получается, что рыба распознаётся только тогда, когда она находится в руках, что леопардовый диван превращается в леопарда, а представитель негроидной расы становится гориллой, правильный макияж или футболка с узором препятствуют распознаванию лиц и т.д. Какая в этом тайна? Я хз. Исследователи исследуют сеть, выясняют что творится внутри сетки, визуализируют промежуточные слои, визуализируют, какие нейроны проходят с большим весом на тех или иных снимках и т.д. Далее придумывают новые аугментации, расширяют в правильном направлении датасет, придумываются новые лоссы — причина всегда выясняется и придумывается сособ решения.
Из последних достижений в этом направлении можно отметить GAN'ы, которые могут использоваться не только для генерации картинок, но и для повышения робастности сетей.
Re[5]: дообучить сеть
От: Vzhyk2  
Дата: 13.11.20 16:38
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Теперь про нейросети

Кстати, если ты в Нижнем, где OpenVino пилят, спроси у спецов (не инженеров) об этом:
А вот чего хотелось бы почитать. Это принципы построения сеток для разных задач, доказательства того сколько и каких слоев нужно и как их связывать в графе и почему и для каких задач.
Пока же то, что я видел — это шаманство. Вот я тут игрался долго и придумал вот такую сетку и она работает.
Re[6]: дообучить сеть
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 14.11.20 09:00
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

V>Кстати, если ты в Нижнем, где OpenVino пилят, спроси у спецов (не инженеров) об этом:


Я не из Нижнего, но можешь зарегаться на ods.ai, там разработчики OpenVINO есть
Re[5]: дообучить сеть
От: Sharov Россия  
Дата: 16.11.20 10:17
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>Не обязательно (часто и не желательно) добавлять слои в сетку. Вполне возможно, что и старая сеть справится с твоей задачей.

Б>Ей просто никогда не показывали сапоги на котах, поэтому ее веса определяют только котов (без сапог).

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

Б>Через некоторое время веса в сетке поменяются — она научится определять эти сапоги на котах.

Я не очень понимаю, зачем менять сущ. веса? Если они уже распознают котов, почему нужно их менять, почему
просто не добавить слой распознавания сапогов? Т.е. чем обучение с модификацией сущ. весов будет отличаться
от обучения с нуля? Я думал как в Лего, ООП подход и паттерн декоратор, использовать сущ. функциональность (архитектура+веса) и
добавить к ней свою. Но зачем тогда менять веса "базовой" сети?
Кодом людям нужно помогать!
Re[5]: классификаторы
От: Sharov Россия  
Дата: 16.11.20 10:23
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>В принципе так. В общем, техника называется transfer learning.


N>Если сказать более общно, но классическое машинное обучение делилось на 2 части: какие признаки выбрать и какой классификатор на них обучить. Это может быть Haar features + AdaBoost, LBP + AdaBoost, HOG + SVM, Integral Channel features + Random forest — великое множество всего. Раньше поиском фич в больших конторах занимались отдельные люди, другие работали над классификаторами. Фурье, вейвлеты, фильтры Габора — всё это годилось для получения фич. Надо сказать, что и сейчас многое годится и используется для нейросетей в том числе.


А почему такой разброс в классификаторах, т.е. от AdaBoost до SVM? Почему нет какой-то одной "техники"?
Кодом людям нужно помогать!
Re: Почему взлетел Deep Learning?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 16.11.20 10:49
Оценка:
Здравствуйте, Tai, Вы писали:

Tai>Как думаете, почему взлетел Deep Learning (распознавание картинок, логические игры, беспилотные машины), хотя что там конкретно внутри — никто не знает.

За последние 10 лет развились методы обучения (теория).
Появились такие удобные и бесплатные библиотеки как tensorflow.
Появилась возможность обучение проводить на видеокартах (фактически домашних компьютерах), а не на огромных кластерах.
Re[6]: классификаторы
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 16.11.20 11:46
Оценка: 20 (2)
Здравствуйте, Sharov, Вы писали:

S>А почему такой разброс в классификаторах, т.е. от AdaBoost до SVM? Почему нет какой-то одной "техники"?


Ммм, не очень понял вопрос. Но по сути: связка Haar + AdaBoost была фактически первой революцией в компьютерном зрении, когда можно было очень быстро детектировать объекты разных размеров. Фичи считались очень быстро за счёт использования интегральных изображений, а каскад позволял быстро отфильтровывать фон. Использование LBP ещё ускорило процесс, но в качестве потеряли из-за чрезмерной локальности признаков.
Через несколько лет появилась связка HOG + linear SVM, которая исользовала более медленные и качественные фичи, но быстрый классификатор. Это были вспышки идей в индустрии, когда ML пошёл в массы на все бытовые устройства: детекторы лиц и улыбок в фотоаппаратах, детекция лиц и пешеходов, распознавание лиц, применение распознавания в системах видеонаблюдения не только на серверах, но и на устройствах видеозахвата типа ip-камер, появились первые аппаратные реализации распознавания пешеходов для автомобильных камер.
После этого взрыва началось массовое исследование методов получения фич и самых разных классификаторов, стали появляться гибриды типа ICF. Майкрософт огорошил всех Кинектом (в нём, кажется, был random forest).
А потом пришёл DL и смёл большую часть этого добра. Разве что всякие бустинги сейчас нормально живут и здравствуют благодаря хорошей интерпретируемости решения.
Re[6]: дообучить сеть
От: Буравчик Россия  
Дата: 16.11.20 12:23
Оценка: 16 (1)
Здравствуйте, Sharov, Вы писали:

S>Я не очень понимаю, зачем менять сущ. веса? Если они уже распознают котов, почему нужно их менять, почему

S>просто не добавить слой распознавания сапогов? Т.е. чем обучение с модификацией сущ. весов будет отличаться
S>от обучения с нуля? Я думал как в Лего, ООП подход и паттерн декоратор, использовать сущ. функциональность (архитектура+веса) и
S>добавить к ней свою. Но зачем тогда менять веса "базовой" сети?

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

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

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

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

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

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

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

P.S. Я не настоящий сварщик, я только учусь. Если я не прав, пусть поправят меня более опытные люди.
Best regards, Буравчик
Re[7]: дообучить сеть
От: Vzhyk2  
Дата: 17.11.20 06:00
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>Но если хотим определять кота в сапогах — то не все так просто. Базовая сеть где-то внутри научилась определять у кота голову, лапы и хвост. На последнем слое она видит все эти части и говорит — это кот! Но если на кота одеть сапоги, то базовая сеть определит только голову и хвост, но не лапы (лапы не очень похожи на сапоги) — и скажет, это не кот.Поэтому нужно подправить веса базовой сети, чтобы подкорректировать определение задних лап, ведь теперь вместо лап сапоги.

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

Б>Вообще, сеть состоит из нескольких слоев. Каждый слой повышает уровень абстракции, используя данные с предыдущего слоя.

Б>Примерно (очень условно), как-то так:
Б>Первый слой — определяет простые линии (горизонтальные и вертикальные)
Б>Второй слой — определяет небольшие фигуры (квадраты, круги) и сложные линии
Б>Третий слой — определяет части кота (глаз, ухо, шерсть, коготь,)
Б>Четвертый слой — определяет крупные части кота (голова, хвост, туловище)
Б>Пятый слой (полносвязный) — определение наличия кота
Это уж в совсем объяснении для детей с привлечением аналогии.
Да, последующие слои сети как-то обобщают фичи с предыдущих, но что там за фичи получаются никто не знает, точнее не знают, как их соотнести с чем-то привычным.
Так то ты можешь сам посмотреть что получается — некие странные картинки без чего-либо привычного людям.

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

Не обязательно. Все зависит от местоположения глобального минимума и его наличия. Стартуешь ты со случайных или уже преобученных не важно. Все зависит от угадал-не угадал.
Re[6]: дообучить сеть
От: Vzhyk2  
Дата: 17.11.20 06:16
Оценка: 16 (1)
Здравствуйте, Sharov, Вы писали:

S>Я не очень понимаю, зачем менять сущ. веса? Если они уже распознают котов, почему нужно их менять, почему

S>просто не добавить слой распознавания сапогов? Т.е. чем обучение с модификацией сущ. весов будет отличаться
S>от обучения с нуля?
Потому что веса это точка в многомерном пространстве. Учитывая градиентный спуск то, функция должна быть дифференцируемая и еще много чего то там, причем вогнутая (если представить на картинке, написал тупо, потому как правильные слова из терии уже забыл, но в учебнике найдешь).
О целевой фуккции нейронок мы такого сказать не может (дифференцируемость есть, вогнутости нет). В итоге при старте где-то мы доходим до ближайшего локального минимума. Глобальный он или нет мы не знаем. Так как нейронки работают, что таки доходим до "глобального" (в градиентный спуск для нейронок добавляется стохастическая часть, чтобы таки вылазить из локальных).
Остюда, стартуя с предобученного мы можем достаточно быстро найти локальный мимнимум и проверить, дествительно-ли получилось то, что хотели, т.е. нашли "глобальный".
Но в силу неустойвивости нейронок может ничего не получиться и стартовать градиентный спуск нужно таки с другой точки.

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

З.Ы. Кстати для поиска глобального есть алгоритмы, генетический, отжига, муравьиный и подобные и они прекрасно кладутся на обучение сеток. Но нам тупо не хватит одной карточки (считать будет долго и очень). Но если у тебя кластер из 100-400 карточек, то в таком случае они будут работать уже приемлемое время и я уверен, что через 3-5 лет уже в инете будут лежать реализации этого подхода. Заодно будет детально исследовано куда же таки сходятся нейронные сетки. А это позволит в большой степени решить проблемы их неустойчивости.
Re[2]: Почему взлетел Deep Learning?
От: Vzhyk2  
Дата: 17.11.20 06:19
Оценка: +1
Здравствуйте, gandjustas, Вы писали:

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

Не появилась. С нуля большую сетку ты на одной игровой карточке не обучишь с нуля. А маленькие распознают очень плохо. На игровой типа 1080 ты можешь только дообучить готовую сетку на свой датасет и то не всегда.
Re[2]: Почему взлетел Deep Learning?
От: m2l  
Дата: 10.01.21 20:44
Оценка:
Здравствуйте, LaptevVV, Вы писали:

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

Вот хотел бы я глянуть хоть одну статью по Deep Learning с частными производными

LVV>Ну, и эвристики: генетические алгоритмы, алгоритмы другие живой природы и т.п.

В ML очень часто сначала экспериментально новый метод делают, а потом, порой лет через 5-10 к нему дописывают математику.
Re: Почему взлетел Deep Learning?
От: m2l  
Дата: 10.01.21 21:10
Оценка:
Здравствуйте, Tai, Вы писали:

Tai>Как думаете, почему взлетел Deep Learning (распознавание картинок, логические игры, беспилотные машины), хотя что там конкретно внутри — никто не знает.


* дешевые и доступные вычислительные ресурсы
* появились большие объемы размеченных данных
* развитие области в целом, придумывают новые методы и совершенствуют то что есть
* эффективно и очень, очень просто в некоторых областях. Засунуть много данных, промолотить и получить на выходе нейронную сеть, которая с вероятностью в 80-90% будет делать верные предсказания/распознавания и т.д. — Порог вхождения минимален, а какой-то эффект можно получить почти сразу.

Насчёт тезиса:

что там конкретно внутри — никто не знает.


не совсем так. В целом, работа математически описана и математика там довольно доступная. По сути DL — просто интерполяция некоторой неизвестной функции, набором нелинейных функций активации. А обучение, это оптимизация этой интерполяции, приближающая её к той самой неизвестной. Другой вопрос, что 9 из 10, кто работает в области ML про эту математику ничего не знают совсем. Что совсем не мешает им пользоваться методом .train() и иметь зачастую очень приличные результаты.
Касаемо темных пятна, которые особо не известны: это как оптимизировать процесс обучение, как эффективней представлять признаки/веса и почему статистически значимы именно те вещи, на которые обучается сеть. И то, это смотря с какой стороны смотреть. Если с практической стороны, то ответить на вопрос, сколько конкретно слоёв нужно, что бы сеть заработала на вот этом наборе данных — математика по нормальному не может. По сути подбираеться экспериментально/эмпирически. С другой стороны, ответ почему при большем числе слоев не работает — переобучение. Почему при меньшем — недостаточная информационная емкость для извлечения признаков. Т.е. понимание, что внутри есть, но для упреждающего предсказания работы нейронной сети имеющегося понимания недостаточно и разработка модели — это в некотором роде своеобразный ручной перебор разных вариантов.
Re[3]: Почему взлетел Deep Learning?
От: Sharov Россия  
Дата: 11.01.21 00:32
Оценка: +1
Здравствуйте, m2l, Вы писали:

m2l>Здравствуйте, LaptevVV, Вы писали:


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

m2l>Вот хотел бы я глянуть хоть одну статью по Deep Learning с частными производными

Гессиан, градиент не встречались? .
Кодом людям нужно помогать!
Re[3]: Почему взлетел Deep Learning?
От: LaptevVV Россия  
Дата: 11.01.21 05:51
Оценка:
LVV>>Вероятность, статистика, алгебра, функции многих переменных, частные производные, нечеткая математика и логика.
m2l>Вот хотел бы я глянуть хоть одну статью по Deep Learning с частными производными
Во всех учебниках.
Обучение нейронных сетей традиционно осуществляется методом градиентного спуска.
Ибо нейронная сеть в своей основе — функция многих переменных.
А метод градиентного спуска — это как раз частные производные.
Учите матанализ, вьюнош...
LVV>>Ну, и эвристики: генетические алгоритмы, алгоритмы другие живой природы и т.п.
m2l>В ML очень часто сначала экспериментально новый метод делают, а потом, порой лет через 5-10 к нему дописывают математику.
Ну, в эвристических алгоритмах математики-то как раз не очень много.
Хотя вероятности там почти везде.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Почему взлетел Deep Learning?
От: m2l  
Дата: 11.01.21 16:46
Оценка: -3
Здравствуйте, LaptevVV, Вы писали:

m2l>>Вот хотел бы я глянуть хоть одну статью по Deep Learning с частными производными

LVV>Во всех учебниках.
Научная статья по машинному обучению? Одна статья?
А то есть у нас некоторые вузы, со своими учебниками.... какой мешанины бреда туда только не копипастят, чисто что б объем добрать и KPI по издательству отработать.

LVV>Обучение нейронных сетей традиционно осуществляется методом градиентного спуска.

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

LVV>Учите матанализ, вьюнош...

Бравируете незнанием предметной области?


m2l>>В ML очень часто сначала экспериментально новый метод делают, а потом, порой лет через 5-10 к нему дописывают математику.

LVV>Ну, в эвристических алгоритмах математики-то как раз не очень много.
LVV>Хотя вероятности там почти везде.
Если мне не изменяет память, то мат аппарат, описывающий нейронные сети через частичные кусочно непрерывные функции появился лет через пятнадцать, после первых статей о перцептроне Розенблатта. Математики, там в общем-то действительно не так уж и много. Но сначала, экспериментально, алгоритм — потом, спустя годы матаппарат, этот алгоритм описывающий.

Даже более яркая история, про бустинг — сначала метод, а спустя лет 6 или 7 математическое описание и доказательство его сходимости. Хотя на практике всё было уже понятно и не один год, как использовалось.
Re[4]: Почему взлетел Deep Learning?
От: m2l  
Дата: 11.01.21 16:51
Оценка:
Здравствуйте, Sharov, Вы писали:

m2l>>Вот хотел бы я глянуть хоть одну статью по Deep Learning с частными производными


S>Гессиан, градиент не встречались? .


Встречались. Хотя, кстати гессиан совсем в неявной форме.
Просто, то, что я видел — это предельно прикладная форма. Реализация отдельных численных методов. А вот, что бы производные каким-либо образом рассматривались в аналитической форме, через них выводились какие-либо свойства модели, относительно обучающей выборки — такого не встречал. Если сталкивался, кинь ссылку, было бы интересно посмотреть, для расширения кругозора.
Отредактировано 11.01.2021 16:52 m2l . Предыдущая версия .
Re[5]: Почему взлетел Deep Learning?
От: Sharov Россия  
Дата: 12.01.21 09:50
Оценка: +1
Здравствуйте, m2l, Вы писали:


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


Серьезно? А как обучение происходит, а бэкпроп как работает? Для чего тогда понаписали tf и pytorch? Именно для
вычисления частных производных. А как иначе минимум найти в многомерном пространстве?


m2l>Даже более яркая история, про бустинг — сначала метод, а спустя лет 6 или 7 математическое описание и доказательство его сходимости. Хотя на практике всё было уже понятно и не один год, как использовалось.


Речь про AdaBoost?
Кодом людям нужно помогать!
Re[5]: Почему взлетел Deep Learning?
От: Sharov Россия  
Дата: 12.01.21 09:54
Оценка: +1
Здравствуйте, m2l, Вы писали:

S>>Гессиан, градиент не встречались? .


m2l>Встречались. Хотя, кстати гессиан совсем в неявной форме.


А что значит в явной или в не явной форме?

m2l>Просто, то, что я видел — это предельно прикладная форма. Реализация отдельных численных методов. А вот, что бы производные каким-либо образом рассматривались в аналитической форме, через них выводились какие-либо свойства модели, относительно обучающей выборки — такого не встречал. Если сталкивался, кинь ссылку, было бы интересно посмотреть, для расширения кругозора.


Вот не совсем про DL, но вот сейчас изучаю XGBoost и там все(деревья решений) строится на основе оптимизации ряда Тейлора
2-й степени, соотв. и градиент и гессиан на месте. https://towardsdatascience.com/xgboost-mathematics-explained-58262530904a?gi=c721e006af47
Или можно нагуглить исходную статью по XGBoost. Вообще в ML без производных никуда, как минимум-то искать? И понятно, что
все это делается численными методами.
Кодом людям нужно помогать!
Re[6]: Почему взлетел Deep Learning?
От: Vzhyk2  
Дата: 20.08.21 12:05
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Или можно нагуглить исходную статью по XGBoost. Вообще в ML без производных никуда, как минимум-то искать? И понятно, что

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