Как научиться писать тексты с нуля: Как научиться писать тексты? Руководство для начинающих копирайтеров

Содержание

Как научиться писать тексты? Руководство для начинающих копирайтеров

Как научиться писать тексты? Руководство для начинающих копирайтеров

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

Чтобы научиться писать тексты, нужно понять:

  • Что писать?
  • Как писать?

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

1. Научитесь понимать задачи текста и аудиторию

Вы сможете написать хороший текст, если ответите на два вопроса:

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

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

2. Составьте план текста

План – это каркас, на который потом «надеваются» слова и получается готовый текст. Чем лучше план, тем выше качество контента.

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

  1. Что волнует человека, который будет читать ваш текст?
  2. Почему он будет читать ваш текст?
  3. Что он хочет узнать?
  4. Что для него важнее всего?
  5. Что бы вы хотели прочитать или узнать, будучи в положении данного человека?

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

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

Есть разные подходы к составлению плана. Новичкам рекомендую использовать схему «Перевернутая пирамида». Начинайте статью с самой интересной информации для читателя. Затем переходите к просто интересной. Дополнительную и малозначимую информацию ставьте в конец. Такая схема позволяет вовлекать в чтение и удерживать внимание. Плюс она очень простая.

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

3. Пишите просто

Если вы новичок, пишите как можно проще. Составляйте короткие предложение из 5-8 слов. Минимум запятых в тексте. Это не значит, что нужно писать с ошибками. Используйте простые предложения, в которых запятые не нужны.

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

Перестаньте думать над формулировками! Часто люди прекрасно говорят, но не могут сформулировать мысли на бумаге. Они начинают «думать» и хотят «написать поумнее и поправильнее». Это ошибка. Пишите так, как говорите. Написанный текст потом доработаете, но вначале его нужно написать.

4. Используйте больше фактов

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

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

Что делать, если заказчик не предоставляет факты? Постарайтесь найти их в интернете или на сайте клиента. Если исходной информации совсем нет, пишите текст с теми данными, которые имеются.

5. Читайте хорошие тексты

Есть сайты с высоким качеством контента, как информационного, так и коммерческого. Читайте тексты на таких сайтах и думайте, почему автор написал так, а не иначе? Почему он выбрал такой план текста? Почему он использует такие формулировки? Почему здесь добавлена таблица, а здесь – список?

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

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

6. Финальная доработка текста

Отложите текст на какое-то время и затем прочитайте его снова. Вы заметите какие-то огрехи, повторы слов и другие проблемы, которые нужно исправить. Работайте над текстом. Меняйте формулировки. Убирайте ошибки. Так вы повысите качество контента.

Обратите особое внимание на следующие вещи:

  1. Заголовок текста. Нормально, если вы перепишете заголовок 2-3 раза прежде, чем найдете оптимальный вариант. Учитесь писать заголовки, которые привлекают внимание и вызывают желание посмотреть текст.
  2. Лид (первый абзац). Прочитайте статью, как написать хороший лид. Там есть полезные приемы, в том числе для продающих текстов.
  3. Структура. Она должна соответствовать плану. Каждый пункт плана должен иметь подзаголовок.
  4. Содержание. Убирайте все, что не несет смысла или ценности для читателя. Текст может сократиться – это нормально.
  5. Вводные слова, длинные предложения и большие абзацы. Все это лучше убрать или переработать (сократить, упростить, разбить на несколько частей).

Советы новичкам, как научиться писать тексты с нуля

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

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

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

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

Рекомендуем

Как написать тексты для сайта?

В нашем мастер-классе мы расскажем, как писать тексты для сайтов. Сделаем акцент на рекламных текстах (копирайтинге).
Если Вам нужно написать …

Как писать новости?

Правильно писать новости – целое искусство. Мы покажем Вам, как можно интересно написать о событии, чтобы привлечь внимание читателей. Примеры …

Как писать хорошие тексты: советы новичкам и профессионалам

Хороший, оригинальный текст – это тот текст, от которого невозможно оторваться, пока не дочитаешь до конца. Как писать хорошие тексты – креативные и доступные? Советы для писателей, копирайтеров и блогеров (как начинающих, так и маститых) по созданию ярких и запоминающихся текстов в материале KnigaStudio.ru.

 

Выделите главное

Перед тем, как начать творить, спросите себя: «О чем я хочу рассказать?». И ответьте на этот вопрос двумя простыми предложениями, которые притянут внимание читателя. Так вы сформулируете основную тему своего будущего шедевра – книги, статьи, заметки в блоге.

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

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

Сохраните свежесть взгляда

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

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

Сохраняйте интригу

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

Вот и в нашей статье о том, как научиться писать хорошие тексты, мы не выложили основные секреты в первых строках!

 

Избавьтесь от ненужных уточнений

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

И от лишних слов тоже

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

К лишним словам относятся и канцеляриты. Не нужно писать что-то вроде «он испытывает глубочайшее чувство радости» или «он находится в состоянии усталости». Хватит простого «он радуется» или «он устал». Само собой, канцеляриты могут употребляться для создания комического эффекта.

И вообще краткость – сестра таланта

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

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

Не злоупотребляйте глаголами и прилагательными

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

А какие слова стоит использовать?

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

Минимум цифр

Желательно, чтобы на абзац приходилось не больше одной цифры, максимум – двух. Конечно, это не относится к профильным статьям. Как писать хорошие тексты по бухучету или алгебре без статистических выкладок и обилия цифр?!

Сложное – упрощать, предложения – сокращать

Если какое-либо сложное явление описано сложными же словами, надо постараться уложить описание в емкое предложение – фразу из четырех-пяти слов.

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

Уровни читаемости

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

При выявлении читаемости используются такие параметры:

  • до 10% длинных слов – высокая читаемость;
  • от 10 до 30% – средняя;
  • более 30% – низкая.

Списки украшают

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

Личный опыт

О вашем личном опыте (не только положительном, но и отрицательном) читатели могут узнать только от вас. Используйте истории и приключения из личной жизни. Они – самые лучшие!

Позитивный настрой

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

 

По материалам издательства «МИФ», а также книг «Автор, ножницы, бумага» и «Бизнес-копирайтинг»

Ремесло писателя. Как научиться писать? / Хабр

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

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

«Это не всем дано…»

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

«Ну, это ж искусство…»

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

«Ну почитай что-нибудь для примера…»

Можно всю жизнь читать, а писать когда? Да и если почитать «Фауста» — как можно что-то писать после этого? Чувствуешь себя мошкой безгласной, которой нужно только молчать и слушать, то есть читать. Есть масса примеров когда человек никак не связанный с писательством становился писателем.

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

С упражнений. Для писателя самым главным и первым упражнением является написание эссе. Это краткая литературная форма – основа для построения больших романов. Например открываем Ремарка «На западном фронте без перемен» — сидят в окопе – эссе на полстраницы, полстраницы – эссе о воспоминании о доме, затем полстраницы о бомбежке – из таких эссе у Ремарка получались толстенные романы. Темой для эссе может что угодно – столб, мысли бездомного пса, да хоть прожитый день – эссе будет записью в дневнике. Размер эссе может быть от пары предложений до нескольких страниц. Эссе для писателя – также как этюд для актера, как пьесы или вокализы для музыканта.

Я попытаюсь изложить несколько принципов, которые мне помогли в освоении ремесла:

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

2. Благозвучие. Писать благозвучно. Созвучия должны быть приятны для внешнего и внутреннего слуха. «Игра или дело – ешь Марс смело» — сочетание глухих и шипящих – не самое приятное в русском языке. Таких сочетаний лучше избегать: «Дизайн – красота в функциональности» — эта фраза не функциональна, из-за чудовищного сочетания звуков. Значит нужно искать другие варианты – они есть, нужно только искать. Проверить благозвучность легко – прочитать то, что написал – если режет слух – переписывай.

3. Семь слов в предложении. Да-да, я знаю, набежит сейчас куча народу – дескать, у нас, есть багатый и могучий, что есть сложноподчиненные и сложносочиненные предложения. Спасибо, я в курсе – сложные предложения прекрасны, я не спорю, но мы говорим о начале. Сразу писать/играть симфонии, сразу мыслить/писать сложными конструкциями, и удобочитаемыми, более того – чтобы их было приятно читать – за это никто не берется – не получится. Нужно вначале научиться кирпичи обжигать, а потом уже браться за что-то посложнее. Писать длинными предложениями – высший пилотаж, не каждый писатель это умеет. Вспомнить километровые предложения у Толстого в «Войне и мире», не уверен что всех эти фразы вдохновляют. Советую еще раз послушать и посчитать слова: «мой дядя самых честных правил, когда не в шутку занемог…» и т.д.

4. Никакого вдохновения. Это слово настолько изнасиловано, что просто уже стыдно его использовать. Есть объективная реальность, и думать что нам что-то «свыше» будет падать в голову, или на голову – наивно. У нас есть огромная и мощная машина – подсознание, его нужно правильно загрузить, и оно будет выдавать качественные и нужные вещи. Я имею в виду вот что: какими вопросами вы задаетесь? Над чем раздумываете? О чем читаете? О чем мечтаете? Как смотрите на окружающих, на мир? Что у вас «варится» в голове? – От этого зависит то, что и как вы будете выдавать на бумаге. Человек «под вдохновением» все равно что «под кайфом» — ничего не соображает, захвачен своим состоянием и не видит ничего вокруг – можно, долго гнать велосипед, а можно спокойно ехать на грузовике. Вдохновение – это шизофрения творческого человека, поменьше вдохновения.

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

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

5. «Любая драка начинается с первого удара» — как говорил мой тренер, так и любой текст начинается с ударной фразы. Вложите в одно предложение все, что вы хотите сказать и даже больше. Сделайте это слоганом вашего текста. Ударной фразой вы ставите точку и ведете линию – вы иллюстрируете/раскрываете/расшифровываете ударную фразу. Например, в ударной фразе к этому тексту я уложил все то, что доказываю, показываю что ремесло писателя такое же земное, как и все остальные профессии. Ударная фраза может состоять из нескольких слов, так и из одного слова: «Москва. Сколь много в этом звуке, для сердца русского слилось». Ударная фраза – Москва. Если в разговоре вы нужной интонацией, чувством попытаетесь уложить все это в одном слове – то всем будет понятен тот смысл что вы вложили. А здесь только бумага и читатель, вас рядом нет чтоб прокомментировать – вот нужно так уложить все в первой фразе, чтобы задать нужный камертон читателю для чтения уже не вашего текста. Он уже принадлежит читателю, и он волен его читать как хочет.

Ударная фраза, кстати, решают вечную дилемму — «О чем написать?» и «С чего начать?». Придумайте ударную фразу – и все, дальше уже дело техники эту ударную фразу расписать в тексте.

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

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

8. Ценить бумагу. В наш век терабайтов это сложно объяснить. Бумага стала не то что дешевой, а вообще бесплатной. А вы представьте что бумагу на которой вы хотите что-то написать выделывали из шкуры антилопы целый месяц. Вот один или несколько человек целый месяц трудились чтобы вы могли там что-то написать, или еще лучше вы сами долго вкалывали чтобы эту бумагу сделать? После этого вы фигню писать не будете, и много-много раз подумаете, потренируетесь на песочке, прежде чем на такую бумагу что-то написать. А так! Сел! Обрушился на клавиатуру – и вуаля! Бац! Слабал, да что ты, вот держи, все готово. Слово обесценивается вместе с бумагой. Так вот для тренировки лучше писать на бумаге, а не на компе – будете больше бумагу ценить, и слова, соответственно. Хабр, в этом отношении тоже очень хорошая штука – написал что-то не то, уже права пересдачи не будет, или нужно очень стараться.

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

Еще одним важным упражнением для писателя является перевод абстрактных вещей в конкретные и наоборот. Т.е. если у вас хорошее настроение – вы должны написать в чем конкретном это выражается (учащенное серцебиение или в чем-то другом), или у вас что-то случилось, вы что-то сделали – вы должны высказать для самого себя вывести абстрактные выводы, обобщения по этому поводу. Говоря языком интернета – онлайн (мысли) нужно переводить в офлайн (конкретику), и офлайн переводить в онлайн.

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

Нужно носить с собой блокнот. Обложится бумажками. Как сказал один философ: «Если ты возникшую у тебя мысль не записал в ту же секунду – значит уже не напишешь никогда». И не тешьте себя иллюзиями полноты головы – проверьте себя, напишите на бумаге о чем вы думаете – сразу все станет ясно.

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

Хороший способ проверить свои писания – пойти с ними по редакциям, если заплатят хоть 10 дол – значит оно того стоит. Если нет – все равно нужно продолжать.

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

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

Айн Рэнд. Искусство беллетристики

Густав Водичка. Курсы писательского мастерства

Нора Галь. Слово живое и мертвое

Дитмар Эльяшевич Розенталь. Практическая стилистика русского языка

UPD от комментаторов (сам не читал):

Марио Варгас Льоса. Письма молодому романисту

Юрий Никитин. Как стать писателем

Леонид Каганов. Лекция про идеи

Он же. КАК ДОСТОВЕРНО ОПИСЫВАТЬ НЕВОЗМОЖНОЕ

Владимир Маяковский. Как делать стихи

Стивен Кинг. Как писать книги

Как научиться писать статьи и где черпать вдохновение

Как писать статьи

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

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

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

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

Обычно статья состоит из следующих частей:

  1. Анонс — краткое содержание или просто объяснение, почему вы решили писать на эту тему (так часто делают блогеры, которые пишут от первого лица). В нём необходимо указать, почему данная статья заинтересует читателя и что он из неё для себя почерпнёт.
  2. Введение — факты, существующие взгляды на рассматриваемую проблему, статистика. Вопросы, которые вы хотите рассмотреть в статье.
  3. Ваше видение проблемы и тезисы — самая большая часть статьи, где автор высказывает своё суждение и аргументирует его, приводит сравнения, раскрывает тему. Основная задача здесь — не лить воду, писать только по существу. От того, увидит ли читатель профессиональный подход к делу, найдёт ли свежие мысли по данному вопросу и прочувствует ли авторский стиль, зависит, останется он с вами или нет.
  4. Выводы и рекомендации — заключение о том, что хотел автор донести до читателей.

План может изменяться в зависимости от темы, стиля автора, объёма текста и других факторов. Кроме того, не обязательно писать по порядку, ведь никто не видит, что вы начали с середины или вообще с конца. Главное — начать. Постепенно сложится ясная картина будущей статьи.

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

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

Почему мы пишем

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

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

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

Поиск вдохновения

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

Заключение

Если вы только начинаете писать, то помните о следующих советах:

  • Придумайте цепляющий заголовок.
  • Структурируйте пост.
  • Лучше пишите реже да лучше, чем чаще да хуже.
  • Ищите вдохновение.

Успех приходит лишь к тем, кто пишет и кого читают, но как же писать статьи интересно? Это умение появляется с опытом. Обратите внимание на первые и последние статьи известных блогеров — небо и земля, как будто разные люди писали, а ведь прошло всего 1–2 года. Просто они учились, запоминали лучшие фишки конкурентов, пробовали разные варианты, набивали руку.

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

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

Как научиться писать интересные тексты

23 мая 2016

264133 просмотра

Анна Штаер
Выпускающий редактор журнала «Жить интересно!», координатор проекта «Стодневка — экспедиция к новому Я». Любит честные истории и умных собеседников.
  • interesno.co
  • facebook.com/anna.shtaer
  • Процентов пятьдесят своего рабочего времени я трачу на переписку с людьми, которые хотят поделиться своей историей с «Жить интересно!», но никогда прежде не писали публично и переживают, получится ли у них создать внятный текст.

    Я всегда стараюсь успокоить наших дебютантов: «ЖИ!» — не филиал «Литературной газеты», наши авторы — не профессионалы, а обычные люди, с разной степенью писательской подготовки. Опыт, которым они готовы поделиться, гораздо важнее умения изящно выразить мысль. В конце концов, у них всегда есть я, чтобы подсказать, поправить и отредактировать 🙂

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

    На сайте http://ideanomics.ru мне попался перевод поста Эрика Баркера, колумниста журнала Time и автора блога о саморазвитии Barking Up The Wrong Tree, в котором он рассказал, как писать тексты, которые хочется прочитать. Предлагаю вашему вниманию эту статью с моими комментариями.

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

    Я обратился за ответом к Стивену Пинкеру. Стивен — когнитивный психолог и лингвист из Гарвардского университета, а также входит в экспертный совет American Heritage Dictionary. Недавно его включили в число ста ведущих психологов современности. А его последняя книга — «Чувство стиля: руководство думающего человека по написанию текстов в XXI веке». Итак, к делу.

    1. Стремитесь к визуальности и вступайте в диалог

    Более 80 % информации мы воспринимаем через зрение. Поэтому правильнее всего — помочь читателю «увидеть».

    Из книги «Чувство стиля»:

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

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

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

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

    Представьте, что вы рассказываете другу, столь же умному, как и вы, что-то, чего он не знает. Это «симметрия между читателем и писателем. Это намерение сделать текст наглядным и конкретным. Это радость, что вы можете показать читателю что-то в мире, что он может увидеть сам».

    Этот простой подход может поднять ваши тексты на новый уровень.

    Согласна на 100 %. Чем проще будет ваш текст для восприятия, тем лучше. Не нужно мудрить и подбирать «правильные слова». Пишите так, будто вы рассказываете свою историю заинтересованному собеседнику. Представьте ситуацию: близкий друг, с которым вы давно не виделись, спрашивает вас:

    — Над чем сейчас работаешь?

    — Да вот статью пишу для журнала…

    — Круто, а о чем?

    И вы принимаетесь рассказывать ему свою историю так, чтобы заинтересовать, вдохновить, объяснить человеку, который вам небезразличен, почему это оказалось важно для вас. Приводите примеры, рисуете картинки, начинаете предложения со слова «Представь…».

    2. Остерегайтесь «проклятья знаний»

    Главная причина невнятных текстов — это совсем не ваша вина. Ваш мозг не запрограммирован на написание хороших текстов. Более того, он работает против вас.

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

    Вот что говорит Стивен:

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

    Слышали выражение: «Объясни мне, как будто я — пятилетний ребенок»? Это попытка преодолеть проклятье знаний.

    Как же обойти эту проблему? Делайте то, что писатели делали всегда: пусть кто-то еще прочтет ваш текст и скажет, понятен ли он.

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

    Часто сталкиваюсь с такой позицией: «Я не хочу рассказывать о себе — это нескромно. Лучше я изложу факты». В результате получается безликий и довольно плоский текст, автор которого выглядит педантом, поучающим аудиторию.

    Чтобы получился легкий для восприятия текст, нужна как раз «отсебятина»: эмоции, мысли, сомнения, история со своим сюжетом — все то, что в журналистике называют «фактурой», «мясом». За строчками статьи мы видим живого, мыслящего, развивающегося человека. Мы примеряем на себя его обстоятельства и его образ мысли. Такой текст дает читателю возможность посмотреть на себя со стороны и задать себе вопрос — а для меня это актуально? А я бы так смог? Такой текст вовлекает читателя в процесс осмысления.

    Что касается «проклятья знаний», мне нравится история про Генри Форда: он взял двух самых тупых менеджеров и сделал их «группой контроля»: все инструкции для работников давали прежде всего прочитать этим двоим. Если оба понимали написанное одинаково, инструкцию внедряли. Когда я работаю с текстом, присланным для публикации в «ЖИ!», представляю себя одним из этой парочки:)

    3. Не скрывайте главное

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

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

    Переживаете, что это убьет всю интригу? Опять-таки, не надо умничать — будьте проще и яснее. В интриге нет никакого смысла, если люди не понимают, о чем вы говорите, и бросают читать после первого же абзаца. Стивен объясняет:

    «Многие авторы боятся это делать. Им не хочется говорить что-то вроде „Это текст о хомяках“, или о чем там этот текст. Им кажется, что это лишает текст изюминки. Но кроме тех случаев, когда текст пишет очень умелый автор детективов или очень способный юморист, лучше не пытаться напускать туману, чтобы потом осчастливить читателя внезапным озарением. Читатель должен заранее понимать, куда автор ведет его».

    Насколько быстро это надо говорить? Довольно быстро. В самом начале. Автор должен дать читателю понять, чего он вообще пытается от него добиться.

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

    • сигнал (что-то, что послужило стимулом для перемен) >
    • информация (ваши размышления по этому поводу, почему вас это задело, что было «не так», поиск решения) >
    • предпринятые действия >
    • полученный результат что изменилось, как стало >
    • ваша оценка полученного опыта (как изменились ваши представления о себе, о ситуации, об окружающей действительности) >
    • новый смысл (новое понимание, «генеральная линия» вашей жизни, следуя которой вы поняли, что жить стало интересно)

    И побольше примеров! Ну, вы помните 🙂

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

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

    4. Не обязательно играть по правилам (хотя надо стараться)

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

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

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

    Этот пункт, пожалуй, прокомментирую так: импровизация начинает получаться тогда, когда навык отработан и механика процесса не вызывает затруднений. Начинающим авторам я все-таки рекомендую не увлекаться поиском оригинальной формы. Конечно, если очень хочется, почему бы не попробовать. Но как показывает опыт «ЖИ!», самыми популярными становятся тексты, написанные очень просто:

    5. Читайте, читайте и еще раз читайте

    Многие великие писатели никогда не читали руководства по писательскому мастерству. Как же они чему-то научились? Читая, читая, читая другие книги. Вот что говорит Стивен:

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

    Что читать, чтобы писать хорошие тексты для «Жить интересно!»? Конечно же, хорошие статьи наших героев:)

    И вот еще несколько толковых книг для начинающих писателей:

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

    Нора Галь, Слово живое и мертвое

    Уильям Зинсер, Как писать хорошо

    Ольга Соломатина, Писать легко: как сочинять тексты, не дожидаясь вдохновения

    6. Хорошие тексты рождаются в результате переработки

    Хороший писатель — не тот, у кого тексты сразу рождаются идеальными, а тот, кто тратит время на их оттачивание. Обычно идеи возникают в вашем мозгу не в том виде, в каком ими лучше всего делиться с другими людьми. Это требует работы. Эти слова нужно подчинить себе. Засучите рукава и боритесь с ними. Вот что говорит Стивен:

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

    И если вы думаете, что СМС, e-мейлы и соцсети уничтожают словесность, то вы ошибаетесь. Как пишет исследователь Кристиан Раддер, «Twitter может даже улучшать качество текста, потому что заставляет людей втискивать смысл в ограниченное число знаков. Лингвисты также измерили лексическую плотность Твиттера и обнаружили, что она не просто выше, чем у e-мейлов, но и сопоставима с уровнем „умного“ журнала Slate».

    Журналистам, вместе с которыми мы делали ежемесячный деловой журнал, я советовала «переспать» со статьей. После того, как текст как будто бы полностью готов, его нужно отложить. Лучше всего — до завтра. А на следующий день прочитать свежим взглядом от корки до корки. Однако не забывайте о том, что лучшее — враг хорошего. И хотя я отлично представляю, как трудно бывает усмирить свой перфекционизм (этот материал я перерабатываю уже в четвертый раз), примите как факт: всех косяков не отследить и не исправить. Пусть уж на сайте появится статья с ошибкой, чем не появится никакой.

    Подведем итог

    Шесть советов от Стивена, которые сделают ваш текст классным:

    1. Пишите, как говорите, рисуйте картинки, рассказывайте истории. Будьте конкретны, помогите читателю увидеть все своими глазами и не пытайтесь произвести на него впечатление.
    2. Остерегайтесь «проклятия знания». Попросите кого-нибудь прочитать ваш текст и оценить — насколько он доступен для понимания. Не доверяйте своему мозгу.
    3. Не прячьте смысл. Если читатели не понимают, о чем идет речь, они теряют интерес к чтению.
    4. Не обязательно писать строго по правилам. Иногда можно их нарушить.
    5. Читайте больше. Никогда не прекращайте учиться.
    6. «Хороший текст» означает «перечитанный и переработанный». Никогда не нажимайте «отправить» прежде, чем прочтете вашу статью несколько раз. Но не пытайтесь довести его до идеала.

    Оригинал статьи Эрика Баркера тут.

    Мы ждем ваши истории!

    P.S. Подумала, и решила добавить примеров безусловно хороших историй от участников проекта «Стодневка — экспедиция к новому Я». Вот уж среди них точно нет ни одного профессионально пишущего автора, а статьи читаются на одном дыхании. Почему? Потому что есть, о чем рассказать:)

    В этом списке нет даже блогеров.

    (Хотя, вру. Парочка есть: Анатолий Иванов написал статью о том, как стодневка помогла ему запустить блог. А Инга Адмиральская вот только что завершила стодневку, одной из целей которой было создание личного сайта).

    Хотите разобраться со своими целями?
    Сделайте это в проекте
    Стодневка – экспедиция к новому Я

    Открыта запись в сентябрьскую Стодневку!

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

    Вам не придется прикладывать сверхусилия. Правило маленьких шагов помогает двигаться к целям спокойно и непрерывно.   

    • Автор и ведущий курса — Армен Петросян.
    • Работа проходит в команде единомышленников на закрытом сайте, куда имеют доступ только участники группы.
    • На данный момент в проекте уже 3017 участников, большинство прошли Стодневку не по одному разу.
    • Инструменты Стодневки — фрирайтинг, работа с планом дня, трекинг привычек, списки, ведение дневника и многое другое.
    • Оплатив курс однажды, вы получаете право проходить Стодневку сколько угодно раз.

    Образование #Писательство #создание текстов 

    Система Orphus

    «Стать Хемингуэем»: учимся писать хорошие тексты: school_lj — LiveJournal

    Не каждый из нас способен стать великим писателем, — но каждый может научиться писать так, чтобы восхищённые читатели требовали: «Автор, пиши ещё»!

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

    Как стать Хемингуэем?Как стать Хемингуэем?

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

    PixarPixar

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

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

    Как писать хорошие, интересные тексты? Предлагаем 19 советов для начинающих и «продолжающих» редакторов, копирайтеров, блогеров — вообще для всех, кто воздействует словом на ход событий.

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

    Слышали фразу Хемингуэя: «Пиши пьяным — правь трезвым»? Первое, что нужно знать: Хемингуэй никогда её не произносил. Он любил котиков и выпить, но никогда не писал пьяным, его внучка подтверждает это. Цитата принадлежит герою романа «Рубен, Рубен» американского автора Питера Де Вриса. Однако фраза столь популярна, что ей посвящены десятки статей в русском и зарубежном интернете. Неважно, кто её автор, главное — смысл.

    Как построить историю так, чтобы ее читали и перечитывали? 

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

    Как рассказать хорошую историюКак рассказать хорошую историю

    Задевайте читателей за живое, не бойтесь цитировать, обращайтесь к сердцу и не жалейте слов!

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

    Еще один крутой курс писательского мастерства — рассылка«Инициал» от редакторов Livehacker.ru:

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

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

    Максим Ильяхов – лингвист, автор популярной книги «Пиши.Сокращай», известный редактор и разработчик сервиса проверки текста «Главред». Он также ведет бесплатную еженедельную рассылку для редакторов и сочувствующих. 

    Многие умеют писать грамотно, но мало кто пишет хорошо. Я постараюсь показать, как создать интересный и честный текст с хорошей структурой и синтаксисом.

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

    Павел Фёдоров — шеф-редактор «Лайфхакера» — ведет интересный и полезный Телеграм-канал про тексты, деньги, рекламу и хайп. Здесь вы узнаете, что такое «медленная редактура», как найти авторский голос и трудно ли писать продающие тексты.

    Пожалуйста, делитесь в комментариях находками, секретами и опытом написания хороших текстов!

    пошаговая инструкция, с чего начать и как улучшить навык, советы профессионалов

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

    С чего начинать

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

    1. Запишите каждую мысль, которая приходит вам в голову по теме – это может быть в случайном порядке.
    2. Делайте это, пока вы не будете удовлетворены тем, что вы придумали качественный текст.
    3. Теперь организуйте и обобщите свои мысли.
    4. По сути, это подразумевает отделение ваших идей от основной темы (вашего текста), чтобы охватить весь спектр мыслей в вашем наброске.
    5. Как только вы поймете цель написания текста, ваш шаблон мышления будет идти в правильном направлении.

    3 шага, как научиться писать тексты

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

    Форма и стиль письма

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

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

    Обучение

    Пройдите творческие уроки письма. Уроки творческого письма доступны в нескольких местах:

    1. Студенческие городки. Многие колледжи и университеты предлагают возможность получить высшее или специальное образование в области творческого письма. Эти классы обычно преподаются штатными или адъюнкт-профессорами, причем занятия продолжаются целый семестр.
    2. Семинары. Это короткие однодневные или двухдневные занятия, которые могут проводиться в общественном центре или организации, на выезде писателя. Эти уроки обычно преподаются опытными писателями.
    3. В сети. Четырехлетние или общественные колледжи могут предлагать интерактивные уроки творческого письма в качестве информационно-пропагандистской программы или организаций, предназначенных исключительно для обучения письму в интернете. Некоторые классы могут быть предложены бесплатно, в то время как другие взимают плату.
    4. Фриланс. Можно обучаться написанию текстов онлайн, при этом зарабатывая деньги.

    Чтение книг

    Читайте книги, которые охватывают ряд аспектов:

    1. Общие практические книги учат основам творческого письма. Эти книги могут содержать методы, как стимулировать вашу креативность, давать советы о том, как структурировать время написания, или работать с агентами и издателями.
    2. Специфичные для техники книги обучают определенным методам письма, которые могут быть применены ко многим жанрам письма.
    3. Книги по конкретным жанрам учат тому, как писать в определенном жанре, таком как реклама, фантастика или романтика.
    4. Справочники по жанрам предоставляют информацию, которую писатели должны знать, чтобы создать реалистичные моменты для своих историй в этом жанре.
    5. Следите за написанием блогов и подкастов. Ряд авторов высказывают свое мнение о письме в виде блога или подкаста. Вы можете найти авторов, которые пишут в интересующей вас области и либо добавить в закладки свои блоги, либо загрузить свои подкасты для просмотра на досуге.
    6. Присоединяйтесь к группе писателей. Группы писателей дают возможность пообщаться с другими авторами, чтобы поделиться как методами, так и возможностями для продвижения вашей работы.
    7. Практика. Независимо от того, какие формальные или неформальные методы вы выберете для обучения творческому письму, верный способ улучшить свои навыки – это писать регулярно и часто, применяя то, что вы узнали из методов, перечисленных выше.

    Советы по написанию текстов

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

    1. Создавайте текст простым и сосредоточьтесь на одной части жизни персонажа/товара/услуги.
    2. Убедитесь, что у читателя есть четкая картина вашего персонажа/товара/услуги.
    3. Сосредоточьтесь на теме и сообщении, которое вы пытаетесь донести.
    4. Пусть идея текста создаст собственную жизнь.
    5. Будьте уникальны и подумайте о многих возможных концах истории, прежде чем обрисовать ее в общих чертах.

    Еще несколько советов по написанию текстов вы узнаете из видео:

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

    6 шагов для написания любого алгоритма машинного обучения с нуля: пример использования Perceptron | Автор: Джон Салливан

    John Sullivan

    Написание алгоритма машинного обучения с нуля — это чрезвычайно полезный опыт обучения.

    Это дает вам это «ах-ха!» момент, когда он наконец щелкает, и вы понимаете, что на самом деле происходит под капотом.

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

    Я проведу вас через следующий 6-этапный процесс написания алгоритмов с нуля, используя Perceptron в качестве примера:

    1. Получите общее представление об алгоритме
    2. Найдите несколько различных источников обучения
    3. Разбейте алгоритм на фрагменты
    4. Начните с простого примера
    5. Подтвердите с помощью надежной реализации
    6. Напишите свой процесс

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

    По крайней мере, вы должны быть в состоянии ответить на следующие вопросы:

    • Что это?
    • Для чего он обычно используется?
    • Когда я НЕ МОГУ этим пользоваться?

    Что касается персептрона, давайте продолжим и ответим на следующие вопросы:

    • Однослойный персептрон — это самая простая нейронная сеть. Обычно он используется для задач двоичной классификации (1 или 0, «да» или «нет»).
    • Некоторыми простыми применениями могут быть анализ настроений (положительный или отрицательный ответ) или прогнозирование дефолта по ссуде («дефолт», «не дефолт»).В обоих случаях граница принятия решения должна быть линейной.
    • Если граница принятия решения нелинейная, вы действительно не можете использовать персептрон. Для этих задач вам нужно будет использовать что-то другое.

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

    Кто-то лучше учится по учебникам, кто-то — по видео.

    Лично я люблю прыгать и использовать различные типы источников.

    Что касается математических деталей, то учебники отлично справляются с этой задачей, но для более практических примеров я предпочитаю сообщения в блогах и видео на YouTube.

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

    Учебники

    Блоги

    Видео

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

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

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

    Пройдя по источникам, я разбил Персептрон на следующие 5 частей:

    1. Инициализирую веса
    2. Умножьте веса на входные и просуммируйте их
    3. Сравните результат с пороговым значением для вычисления вывода (1 или 0)
    4. Обновить веса
    5. Повторить

    Давайте подробно рассмотрим каждый.

    1. Инициализируем веса

    Для начала мы инициализируем вектор весов.

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

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

    Затем мы умножим веса на входные данные, а затем просуммируем их.

    Чтобы упростить работу, я раскрасил веса и соответствующие им элементы в первой строке.

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

    Окончательный результат — 0. Я буду обозначать этот временный результат как «f».

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

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

    Поскольку вычисленное нами скалярное произведение «f» (0) не превышает нашего порогового значения (0), наша оценка равна нулю.

    Я обозначил оценку как y со шляпой (также известной как «y hat»), с нижним индексом 0, чтобы соответствовать первой строке. Вместо этого вы могли бы использовать 1 для первой строки, это не имеет значения. Я просто решил начать с 0.

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

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

    Теперь мы обновим веса.Вот уравнение, которое мы собираемся использовать:

    Основная идея заключается в том, что мы корректируем текущий вес на итерации «n» так, чтобы мы получили новый вес для использования в следующей итерации, «n + 1».

    Чтобы отрегулировать вес, нам нужно установить «скорость обучения». Обозначается это греческой буквой «эта».

    Я выбрал 0,1 для скорости обучения, но вы можете поэкспериментировать с другими числами, как и с порогом.

    Вот краткое изложение того, что у нас есть на данный момент:

    Теперь давайте продолжим и вычислим новые веса для итерации n = 2.

    Мы успешно завершили первую итерацию алгоритма персептрона.

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

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

    Один полный проход по набору данных известен как «эпоха».

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

    Мы могли бы установить общее количество итераций или эпох, чтобы продолжить выполнение алгоритма.Может быть, мы хотим указать 30 итераций (или 10 эпох).

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

    На следующей итерации мы переходим ко второй строке функций.

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

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

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

    Для простоты я всегда люблю начинать с очень небольшого «игрушечного набора данных».

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

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

    Я собираюсь добавить фиктивный объект «x0», который представляет собой столбец из единиц.Я сделал это для того, чтобы наша модель рассчитала член смещения.

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

    Вот код для ввода данных:

     # Импорт библиотек 
    # NAND Gate
    # Примечание: x0 - фиктивная переменная для члена смещения
    # x0 x1 x2
    x = [[1., 0., 0 .],
    [1., 0., 1.],
    [1., 1., 0.],
    [1., 1., 1.]] Y = [1.,
    1.,
    1.,
    0.]

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

    Первым шагом является инициализация весов.

     # Инициализировать веса 
    import numpy as np
    w = np.zeros (len (x [0])) Out:
    [0. 0. 0.]

    Имейте в виду, что длина вектора весов должна чтобы соответствовать количеству функций. В этом примере логического элемента NAND эта длина равна 3.

    Далее мы умножим веса на входные данные, а затем просуммируем их.

    Другое название для этого — «скалярное произведение».

    Опять же, мы можем использовать Numpy, чтобы легко выполнить эту операцию.Мы будем использовать метод .dot () .

    Давайте начнем с скалярного произведения вектора весов и первой строки функций.

     # Dot Product 
    f = np.dot (w, x [0])
    print fOut:
    0,0

    Как и ожидалось, результат равен 0.

    Чтобы не противоречить нашим примечаниям в предыдущем разделе, я назначил скалярное произведение на переменную «f».

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

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

    Я собираюсь сделать порог «z» равным 0. Если скалярное произведение «f» больше 0, наш прогноз будет 1. В противном случае он будет равен нулю.

    Имейте в виду, что прогноз обычно обозначается с отметкой в ​​каратах сверху, также известной как «шляпа». Переменная, которой я назначу прогноз, — yhat .

     # Функция активации 
    z = 0,0
    если f> z:
    yhat = 1.
    else:
    yhat = 0.

    print yhat

    Out:
    0.0

    Как и ожидалось, прогноз равен 0.

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

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

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

    Нам нужно будет установить скорость обучения, прежде чем мы сможем это сделать. Чтобы соответствовать нашему предыдущему примеру, я присвою скорости обучения «eta» значение 0,1.

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

     # Обновить веса 
    eta = 0,1
    w [0] = w [0] + eta * (y [0] - yhat) * x [0] [0]
    w [1] = w [1] + eta * (y [0] - yhat) * x [0] [1]
    w [2] = w [2] + eta * (y [0] - yhat) * x [0] [2]

    напечатать w

    Out:
    [0.1 0. 0.]

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

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

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

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

    Объединяя все это вместе, вот как выглядит полная функция:

     import numpy as np 

    # Perceptron function
    def perceptron (x, y, z, eta, t):
    '' '
    Input Parameters:
    x : набор данных входных характеристик
    y: фактические выходы
    z: порог функции активации
    eta: скорость обучения
    t: количество итераций
    '' '

    # инициализация весов
    w = np.zeros (len (x [0]))
    n = 0

    # инициализация дополнительных параметров для вычисления суммы квадратов ошибок
    yhat_vec = np.ones (len (y)) # вектор для прогнозов
    ошибок = np.ones (len (y)) # вектор ошибок (фактический - прогнозы)
    J = [] # вектор для функции затрат SSE

    while n = z:
    yhat = 1.
    else:
    yhat = 0.
    yhat_vec [i] = yhat

    # обновление весов
    для j в xrange (0, len (w)):
    w [j] = w [j] + eta * (y [i] -yhat) * x [i] [j]

    n + = 1
    # вычисление суммы квадратов ошибок
    для i в xrange (0, len (y)):
    ошибок [i] = (y [i] -yhat_vec [i]) ** 2
    J.append (0,5 * np.sum (errors))

    return w, J

    Теперь, когда мы закодировали полный Персептрон, давайте продолжим и запустите его:

     # x0 x1 x2 
    x = [[1., 0., 0.],
    [1., 0., 1.],
    [1., 1., 0.],
    [1., 1., 1.]]

    y = [1. ,
    1.,
    1.,
    0.]

    z = 0,0
    eta = 0,1
    t = 50

    print "Веса следующие:"
    print perceptron (x, y, z, eta, t) [ 0]

    print "Ошибки:"
    print perceptron (x, y, z, eta, t) [0]

    Out:
    Веса:
    [0,2 -0,2 -0,1]
    Ошибки:
    [0,5, 1,5, 1,5, 1,0, 0,5, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0.0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0]

    Взглянув на ошибки, мы видим, что ошибка упала до 0 примерно на 6-й итерации. Для оставшейся части итераций она оставалась равной 0.

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

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

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

    Пришло время сравнить наши результаты с проверенной реализацией. Для сравнения воспользуемся перцептроном из scikit-learn.

    Мы проведем это сравнение, выполнив следующие шаги:

    1. Импорт данных
    2. Разделение данных на наборы для обучения / тестирования
    3. Обучите наш Персептрон
    4. Протестируйте Персептрон
    5. Сравните с scikit-learn Perceptron

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

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

     import pandas as pd 
    import numpy as np
    import matplotlib.pyplot as plt

    df = pd.read_csv ("dataset.csv")
    plt.scatter (df.values ​​[:, 1], df.values ​​[: , 2], c = df ['3'], alpha = 0.8)

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

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

    Я использовал Pandas для импорта csv, который автоматически помещает данные в фрейм данных.

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

    Характеристики находятся в столбцах 1 и 2, поэтому я использовал их в функции диаграммы рассеяния. Столбец 0 — это фиктивная функция единиц, которую я включил, чтобы вычислить точку пересечения. Это должно быть знакомо тому, что мы делали с вентилем NAND в предыдущем разделе.

    Наконец, я раскрасил два класса, используя c = df ['3'], alpha = 0.8 в функции диаграммы рассеяния. Результатом являются данные в столбце 3 (0 или 1), поэтому я сказал функции раскрасить два класса, используя столбец «3».

    Дополнительную информацию о функции диаграммы рассеяния Matplotlib можно найти здесь.

    Теперь, когда мы подтвердили, что данные можно разделить линейно, пора разделить данные.

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

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

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

     df = df.values ​​

    np.random.seed (5)
    np.random.shuffle (df)

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

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

    Затем я разделю 70% данных на обучающий набор и 30% на тестовый набор.

     поезд = df [0: int (0.7 * len (df))] 
    test = df [int (0.7 * len (df)): int (len (df))]

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

     x_train = train [:, 0: 3] 
    y_train = train [:, 3]

    x_test = test [:, 0: 3]
    y_test = test [:, 3]

    Я выбрал 70% / 30 % для моих наборов поездов / тестов только для этого примера, но я рекомендую вам изучить другие методы, такие как перекрестная проверка в k-кратном размере.

    Далее мы обучим нашего персептрона.

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

     def perceptron_train (x, y, z, eta, t): 
    ''
    Входные параметры:
    x: набор данных входных функций
    y: фактические выходы
    z: порог функции активации
    eta: скорость обучения
    t : количество итераций
    '' '

    # инициализация весов
    w = np.zeros (len (x [0]))
    n = 0

    # инициализация дополнительных параметров для вычисления суммы квадратов ошибок
    yhat_vec = np .ones (len (y)) # вектор для прогнозов
    errors = np.ones (len (y)) # вектор для ошибок (фактически - прогнозы)
    J = [] # вектор для функции стоимости SSE

    при n = z:
    yhat = 1.
    else:
    yhat = 0.
    yhat_vec [i] = yhat

    # обновление весов
    для j в xrange (0, len (w)):
    w [j] = w [j] + eta * (y [i] -yhat) * x [i] [j]

    n + = 1
    # вычисление суммы квадратов ошибок
    для i в xrange (0, len (y)):
    errors [i] = (y [i] -yhat_vec [ i]) ** 2
    J.append (0,5 * np.sum (errors))

    return w, J

    z = 0,0
    eta = 0,1
    t = 50

    perceptron_train (x_train, y_train, z, eta , t)

    Давайте продолжим и посмотрим на веса и ошибку суммы квадратов.

     w = perceptron_train (x_train, y_train, z, eta, t) [0] 
    J = perceptron_train (x_train, y_train, z, eta, t) [1]

    print w
    print J

    Out:
    [-0,5 -0,29850122 0,35054929]
    [4,5, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0]

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

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

    Пришло время протестировать наш персептрон. Для этого мы создадим небольшую функцию perceptron_test .

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

    Единственная деталь, которую мы не видели, — это precision_score . Это метрическая функция оценки от scikit-learn. Вы можете узнать об этом подробнее здесь.

    Собирая все это вместе, вот как выглядит код:

     из sklearn.metrics import precision_score 

    w = perceptron_train (x_train, y_train, z, eta, t) [0]

    def perceptron_test (x, w, z, eta, t):
    y_pred = []
    для i в xrange (0, len (x-1)):
    f = np.dot (x [i], w)

    # функция активации
    if f > z:
    yhat = 1
    иначе:
    yhat = 0
    y_pred.append (yhat)
    return y_pred

    y_pred = perceptron_test (x_test, w, z, eta, t)

    print "Оценка точности:"
    print precision_score (y_test, y_pred)

    Out:
    Оценка точности:
    1,0

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

    Последний шаг — сравнить наши результаты с Perceptron из scikit-learn. Вот код этой модели:

     от sklearn.linear_model import Perceptron 

    # обучение sklearn Perceptron
    clf = Perceptron (random_state = None, eta0 = 0.1, shuffle = False, fit_intercept = False)
    clf.fit (x_train, y_train)
    y_predict = clf_test801000 (x

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

     Out: 
    Вес склеарна:
    [-0,5 -0,29850122 0,35054929]
    Вес моего персептрона:
    [-0,5 -0,29850122 0,35054929]

    Веса из модели scikit-learn идентичны нашим весам.Это означает, что наша модель работает правильно, и это отличная новость.

    Прежде чем мы подведем итоги, нужно остановиться на нескольких незначительных моментах. В модели scikit-learn нам нужно было установить случайное состояние на «None» и выключить перемешивание. Мы уже установили случайное начальное число и перетасовали данные, поэтому нам не нужно было делать это снова.

    Нам также пришлось установить скорость обучения «eta0» на 0,1, чтобы она была идентична нашей модели.

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

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

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

    Этот последний шаг в процессе, вероятно, самый важный.

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

    Описание процесса важно по двум причинам:

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

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

    Отличный способ продемонстрировать свою работу - портфолио GitHub Pages.

    В этом посте мы узнали, как реализовать Perceptron с нуля.

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

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

    Наконец, мы закончили, сравнив результаты нашей модели с надежной реализацией.

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

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

    .

    Как разработать модель машинного обучения с нуля | Виктор Роман

    Victor Roman

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

    Конкретно в статье будет рассмотрено, как:

    • Определить адекватно нашу проблему (цель, желаемые результаты…).
    • Сбор данных.
    • Выберите меру успеха.
    • Установите протокол оценки и различные доступные протоколы.
    • Подготовьте данные (с пропущенными значениями, с категориальными значениями…).
    • Спилите правильно данные.
    • Проведите различие между переоборудованием и недостатком, определив, что они собой представляют, и объяснив, как их избежать.
    • Обзор того, как модель учится.
    • Что такое регуляризация и когда целесообразно ее использовать.
    • Разработайте эталонную модель.
    • Выберите подходящую модель и настройте ее, чтобы получить максимальную производительность.

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

    • Какова основная цель? Что мы пытаемся предсказать?
    • Каковы целевые функции?
    • Какие входные данные? Это доступно?
    • С какими проблемами мы сталкиваемся? Бинарная классификация? Кластеризация?
    • Какое улучшение ожидается?
    • Каков текущий статус целевой функции?
    • Как будет измеряться целевой объект?

    Не каждую проблему можно решить, пока у нас не будет работающей модели, мы просто сможем сформулировать определенную гипотезу:

    • Наши результаты можно предсказать с учетом входных данных.
    • Наши доступные данные достаточно информативны для изучения взаимосвязи между входами и выходами

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

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

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

    Обычно наши данные будут иметь следующую форму:

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

    Питер Друкер, преподаватель Гарвардского университета и автор книги «Эффективный руководитель и управление собой», высказал известную поговорку:

    «Если вы не можете измерить это, вы не сможете его улучшить».

    Если вы хотите контролировать что-то, это должно быть наблюдаемым, и для достижения успеха важно определить, что считается успехом: Может быть, точность? точность? Уровень удержания клиентов?

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

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

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

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

    4.1 Поддержание набора проверки удержания

    Этот метод состоит в выделении некоторой части данных в качестве набора для тестирования.

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

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

    4.2 Проверка K-Fold

    K-Fold состоит в разбиении данных на K разделов равного размера. Для каждого раздела i модель обучается с оставшимися разделами K-1 и оценивается на разделе i.

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

    4.3 Итерированная проверка K-Fold с перетасовкой

    Этот метод особенно актуален при наличии небольшого количества данных и необходимости оценки модели как можно точнее (это стандартный подход на соревнованиях Kaggle).

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

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

    Примечание. При выборе протокола оценки важно учитывать следующие моменты:

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

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

    5.1 Работа с недостающими данными

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

    Пропущенные значения обычно представлены индикаторами «NaN» или «Null». Проблема в том, что большинство алгоритмов не могут обработать эти пропущенные значения, поэтому нам необходимо позаботиться о них, прежде чем передавать данные в наши модели.После того, как они идентифицированы, есть несколько способов справиться с ними:

    1. Удаление образцов или объектов с пропущенными значениями. (мы рискуем удалить релевантную информацию или слишком много выборок)
    2. Ввод недостающих значений с помощью некоторых встроенных оценщиков, таких как класс Imputer из scikit learn. Мы сопоставим наши данные, а затем преобразуем их, чтобы оценить их. Один из распространенных подходов - установить пропущенные значения как среднее значение для остальных образцов.

    5.2 Работа с катерогенными данными

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

    Методы работы с порядковыми и номинальными признаками:

    • Отображение порядковых признаков : чтобы убедиться, что алгоритм правильно интерпретирует порядковые признаки, нам необходимо преобразовать категориальные строковые значения в целые числа.Часто мы делаем это сопоставление вручную. Пример: L: 2, M: 1, S: 0.
    • Кодирование меток номинального класса : Наиболее распространенным подходом является выполнение «горячего» кодирования, которое заключается в создании нового фиктивного объекта для каждого уникального значения в столбце номинального признака. Пример: в столбце цвета, если у нас есть три класса: желтый, красный, зеленый и выполняется одноразовое кодирование, мы получим три новых столбца, по одному для каждого уникального класса. Тогда, если у нас есть желтая рубашка, она будет выбрана как: желтый = 1, зеленый = 0, красный = 0.Это сделано для обеспечения хорошей производительности алгоритма, поскольку они намного более эффективны при работе с разреженной матрицей (матрицы с низкой плотностью, с большим количеством значений 0).

    5.3 Масштабирование функций

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

    • Нормализация: это изменение масштаба функций до диапазона [0,1], что является частным случаем масштабирования min-max.Чтобы нормализовать наши данные, нам просто нужно применить метод масштабирования min-max к каждому столбцу функций.
    • Стандартизация: она заключается в центрировании столбцов признаков по среднему значению 0 со стандартным отклонением 1, чтобы столбцы признаков имели те же параметры, что и стандартное нормальное распределение (нулевое среднее и единичное отклонение). Это значительно упрощает алгоритмам обучения определение весов параметров. Кроме того, он сохраняет полезную информацию о выбросах и делает алгоритмы менее чувствительными к ним.

    5.4 Выбор значимых функций

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

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

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

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

    5.5 Разделение данных на подмножества

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

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

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

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

    a) Процесс обучения

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

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

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

    Формула прямой: y = B0 + B1x + u . Где x - входные данные, B1, - наклон, B0 - пересечение по оси Y, и - остаток и y - значение линии в позиции x .

    Доступные для обучения значения: B0 и B1 , которые являются значениями, которые влияют на положение строки, поскольку единственными другими переменными являются x (вход и y, выход (остаток не учитывается). ).Эти значения ( B0 и B1 ) являются «весами» функции прогнозирования.

    Эти веса и другие, называемые смещениями, представляют собой параметры, которые будут организованы вместе в виде матриц ( W, для весов и b для смещений).

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

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

    b) Переоснащение и недостаточное оснащение

    Одна из наиболее важных проблем при рассмотрении обучения моделей - это противоречие между оптимизацией и обобщением.

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

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

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

    Есть два способа избежать этого переобучения: получение дополнительных данных и регуляризация.

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

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

    1. Уменьшение размера модели: уменьшение количества обучаемых параметров в модели, а вместе с ними и ее обучаемости. Цель состоит в том, чтобы найти золотую середину между слишком большой и недостаточной способностью к обучению. К сожалению, нет никаких волшебных формул для определения этого баланса, его нужно проверять и оценивать, задав различное количество параметров и наблюдая за его работой.
    2. Добавление регуляризации веса: В целом, чем проще модель, тем лучше. Пока она может хорошо учиться, более простая модель вряд ли переобучится. Обычный способ добиться этого - ограничить сложность сети, заставив ее веса принимать только небольшие значения, упорядочивая распределение значений весов. Это делается путем добавления к функции потерь сети стоимости, связанной с большими весами. Стоимость возникает двумя способами:
    • Регуляризация L1: Стоимость пропорциональна абсолютному значению весовых коэффициентов (норма весов L1).
    • Регуляризация L2: Стоимость пропорциональна квадрату значения весовых коэффициентов (норма весов l2)

    Чтобы решить, какие из них применить к нашей модели, рекомендуется иметь в виду следующую информацию: примите во внимание природу нашей проблемы:

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

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

    Как показано на «https://blog.dominodatalab.com/benchmarking-predictive-models/»

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

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

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

    7.1 Поиск хорошей модели

    Одним из наиболее распространенных методов поиска хорошей модели является перекрестная проверка.При перекрестной проверке мы установим:

    • Количество складок, по которым мы разделим наши данные.
    • Метод оценки (зависит от характера проблемы - регрессия, классификация…).
    • Некоторые подходящие алгоритмы, которые мы хотим проверить.

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

      # Параметры тестирования и метрики оценки  
    num_folds = 10
    scoring = "neg_mean_squared_error" # Алгоритмы выборочной проверки
    models = []
    models.append (('LR', LinearRegression ()))
    models.append (('LASSO', Lasso ()))
    models.append (('EN', ElasticNet ()))
    models.append (('KNN ', KNeighborsRegressor ()))
    models.append ((' CART ', DecisionTreeRegressor ()))
    models.append ((' SVR ', SVR ()))

    results = []
    names = []
    для имени , модель в моделях:
    kfold = KFold (n_splits = num_folds, random_state = seed)
    cv_results = cross_val_score (model, X_train, y_train, cv = kfold, scoring = scoring)
    results.append (cv_results)
    names.append (name)
    msg = "% s:% f (% f)"% (name, cv_results.mean (), cv_results.std ())
    print (msg)

       # Сравнить алгоритмы   
    fig = pyplot.figure ()
    fig.suptitle ('Сравнение алгоритмов')
    ax = fig.add_subplot (111)
    pyplot.boxplot (результаты)
    ax.set_xticklabels (имена)
    pyplot.show ()

    7.2 Настройка Гиперпараметры модели

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

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

    Процесс будет следующим:

    • Установите сетку параметров, которую мы будем оценивать. Мы сделаем это, создав словарь всех параметров и соответствующих им наборов значений, которые вы хотите протестировать на лучшую производительность.
    • Задайте количество складок, случайное состояние и метод оценки.
    • Создайте объект K-Fold с выбранным количеством складок.
    • Создайте объект поиска по сетке с выбранной моделью и подогнайте его.
      # Построить скейлер  
    scaler = StandardScaler (). Fit (X_train)
    rescaledX = scaler.transform (X_train) # Построить сетку параметров
    c_values ​​= [0.1, 0.3, 0.5, 0.7, 0.9, 1.0 , 1.3, 1.5, 1.7, 2.0]
    kernel_values ​​= ['linear', 'poly', 'rbf', 'sigmoid']
    param_grid = dict (C = c_values, kernel = kernel_values) # Построить модель
    model = SVC ()
    kfold = KFold (n_splits = num_folds, random_state = seed)
    grid = GridSearchCV (оценка = модель, param_grid = param_grid, scoring = scoring, cv = kfold)
    grid_result = grid.fit (rescaledX, y_train) # Показать результаты
    print ("Лучшее:% f с использованием% s"% (grid_result.best_score_, grid_result.best_params_))
    means = grid_result.cv_results _ ['mean_test_score']
    stds = grid .cv_results _ ['std_test_score']
    params = grid_result.cv_results _ ['params']
    для среднего, stdev, param в zip (означает, stds, params):
    print ("% f (% f) с:% r" % (mean, stdev, param))

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

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

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

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

    Спасибо за чтение и следите за обновлениями!

    .

    Мягкое введение в OCR. Как и зачем применять глубокое обучение к… | by Gidi Shperber

    Наконец, сеть позволяет два типа выходных повернутых ограничивающих рамок: либо стандартный ограничивающий прямоугольник с углом поворота (параметры 2X2 + 1), либо «четырехугольник», который представляет собой просто повернутый ограничивающий прямоугольник с координатами всех вершин.

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

    CRNN

    Сверточно-рекуррентная нейронная сеть - это статья 2015 года, в которой предлагается гибридная (или трибридная?) Сквозная архитектура, предназначенная для захвата слов, в трехэтапном подходе.

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

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

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

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

    Эта статья достигает высоких (> 95%) показателей точности с фиксированной текстовой лексикой и различной степени успеха без нее.

    STN-net / SEE

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

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

    SEE стратегия

    Название STN-OCR намекает на стратегию использования пространственного преобразователя (= STN, не имеет отношения к недавнему преобразователю Google).

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

    Затем другая сеть прямого распространения с LSTM наверху (хм… кажется, мы уже видели это раньше) для распознавания текста.

    Здесь исследователи подчеркивают важность использования resnet (они используют его дважды), поскольку он обеспечивает «сильное» распространение на ранние уровни.однако в наши дни такая практика вполне приемлема.

    В любом случае, это интересный подход.

    3. Стандартный подход глубокого обучения

    Как видно из заголовка, после обнаружения «слов» мы можем применить стандартные подходы обнаружения глубокого обучения, такие как SSD, YOLO и Mask RCNN. Я не буду вдаваться в подробности этих подходов, поскольку в Интернете имеется множество информации.

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

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

    Итак, после всех разговоров, пора запачкать руки и попробовать моделировать сами.Мы попробуем решить задачу СВХН. Данные SVHN содержат три разных набора данных: поезд , тест и дополнительный . Различия не очевидны на 100%, однако дополнительный набор данных , который является самым большим (с ~ 500K выборок), включает изображения, которые как-то легче распознать. Так что для этого дубля мы воспользуемся им.

    Чтобы подготовиться к задаче, сделайте следующее:

    • Вам понадобится базовая машина с графическим процессором с Tensorflow≥1.4 и Keras≥2
    • Отсюда клонируйте проект SSD_Keras.
    • Загрузите предварительно обученную модель SSD300 на наборе данных coco отсюда.
    • Клонируйте репозиторий этого проекта отсюда.
    • Загрузите файл extra.tar.gz, который содержит дополнительные изображения набора данных SVHN.
    • Обновите все соответствующие пути в json_config.json в этом репозитории проекта.

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

    И… Вы готовы к старту!

    Шаг 1: разобрать данные

    Как ни крути, но «золотого» формата представления данных в задачах детектирования нет.Некоторые хорошо известные форматы: coco, via, pascal, xml. И многое другое. Например, набор данных SVHN аннотируется малоизвестным форматом .mat . К счастью для нас, эта суть предоставляет изящный сценарий read_process_h5 для преобразования файла .mat в стандартный json, и вы должны пойти на шаг вперед и преобразовать его дальше в формат паскаль, например:

     def json_to_pascal (json, filename) : #filename - это .mat файл 
    # преобразовать json в паскаль и сохранить как csv
    pascal_list = []
    для i в json:
    для j в диапазоне (len (i ['labels'])):
    pascal_list.append ({'fname': i ['filename']
    , 'xmin': int (i ['left'] [j]), 'xmax': int (i ['left'] [j] + i [ 'width'] [j])
    , 'ymin': int (i ['top'] [j]), 'ymax': int (i ['top'] [j] + i ['height'] [ j])
    , 'class_id': int (i ['labels'] [j])})
    df_pascal = pd.DataFrame (pascal_list, dtype = 'str')
    df_pascal.to_csv (filename, index = False) p = read_process_h5 (file_path) json_to_pascal (p, data_folder + 'pascal.csv')

    Теперь у нас должен быть файл pascal.csv , который является гораздо более стандартным и позволит нам прогрессировать.Если преобразование происходит слишком медленно, обратите внимание, что нам не нужны все образцы данных. ~ 10К будет достаточно.

    Шаг 2: посмотрите данные

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

     def viz_random_image (df): 
    file = np.random.choice (df.fname)
    im = skimage.io.imread ( папка_данных + файл)
    annots = df [df.fname == file] .iterrows () plt.figure (figsize = (6,6))
    plt.imshow (im) current_axis = plt.gca () для поля в аннотациях:
    label = box [1] ['class_id ']
    current_axis.add_patch (plt.Rectangle (
    (box [1] [' xmin '], box [1] [' ymin ']), box [1] [' xmax '] - box [1] [') xmin '],
    box [1] [' ymax '] - box [1] [' ymin '], color =' blue ', fill = False, linewidth = 2))
    current_axis.text (box [1] [ 'xmin'], box [1] ['ymin'], label, size = 'x-large', color = 'white', bbox = {'facecolor': 'синий', 'alpha': 1.0})
    plt.show ()
    viz_random_image (df)

    Репрезентативный образец формы SVHN dataset

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

    Шаг 3: выбор стратегии

    Как обсуждалось ранее, у нас есть много возможных подходов к решению этой проблемы. В этом руководстве я воспользуюсь стандартным подходом к обнаружению глубокого обучения и буду использовать модель обнаружения SSD. Мы будем использовать реализацию SSD keras отсюда. Это хорошая реализация PierreLuigi.Хотя у него меньше звезд на GitHub, чем у реализации rykov8, он кажется более обновленным и его легче интегрировать. Это очень важный момент, на который следует обратить внимание при выборе проекта, который вы собираетесь использовать. Другими хорошими вариантами будут модель YOLO и Mask RCNN.

    Шаг 4: Загрузите и обучите модель SSD

    Некоторые определения

    Чтобы использовать репо, вам нужно подтвердить, что у вас есть репозиторий SSD_keras, и указать пути в json_config.json, чтобы записная книжка находила пути.

    Начать с импорта:

      import   os  
    import sys
    import skimage.io
    import scipy
    import открыть с import j70008 json_config.json ') как f: json_conf = json.load (f) ROOT_DIR = os.path.abspath (json_conf [' ssd_folder ']) # добавьте сюда маску RCNN path
    sys.path.append (ROOT_DIR)

    import cv2
    from utils_ssd import *
    import pandas as pd
    8 9000 9000 9000 9000 9000 pd import
    8 9000 из matplotlib import pyplot as plt

    % matplotlib inline
    % load_ext autoreload
    % autoreload 2

    и еще несколько определений:

     taskabels_folder_path = 'svhnpath'l} .csv'input_format = ['class_id', 'image_name', 'xmax', 'xmin', 'ymax', 'ymin'] 

    df = pd.read_csv (labels_path)

    Конфигурации модели :

      класс   SVHN_Config  (Config): 
    batch_size = 8

    dataset_folder = data_folder
    task = task

    labels_path = labels_path

    input_format = input_format

    conf = SVHN_Confimize, resize 9000 (высота) 9000, изменить ширину (высота) 9000 = conf.img_width)
    trans = [resize]

    Определите модель, загрузите веса

    Как и в большинстве случаев глубокого обучения, мы не будем начинать обучение с нуля, но мы загрузим предварительно обученные веса .В этом случае мы загрузим веса модели SSD, обученной на наборе данных COCO, который имеет 80 классов. Очевидно, что наша задача имеет только 10 классов, поэтому после загрузки весов мы восстановим верхний слой так, чтобы он имел нужное количество выходов. Делаем это в функции init_weights. Примечание: правильное количество выходов в этом случае составляет 44: 4 для каждого класса (координаты ограничивающего прямоугольника) и еще 4 для класса background / none.

     учащийся = SSD_finetune (conf) 
    Learner.get_data (create_subset = True )

    weights_destination_path = учащийся.init_weights ()

    Learner.get_model (mode = 'training', weights_path = weights_destination_path)
    model = Learner.model
    Learner.get_input_encoder ()
    ssd_input_encoder = Learner.ssd_input_encoder

    sd_input_encoder

    Определения обучения lr = 0,0002, beta_1 = 0,9, beta_2 = 0,999, epsilon = 1e-08, decay = 0,0)
    ssd_loss = SSDLoss (neg_pos_ratio = 3, n_neg_min = 0, alpha = 1.0)
    model.compile (optimizer = adam, loss = ssd_loss.compute_loss)

    Определить загрузчики данных

     train_annotation_file = f ' {conf.dataset_folder}  train_pascal.csv '
    val_annotation_file = f' {conf.dataset_folder} val_pascal.csv '
    subset_annotation_file = f' {conf.dataset_folder} small_pascal_sizev = 900'_pascal_sizev = 900'_pascal_sizev = 900'_pascal_sizev = «обработанные_ изображения», «обработанные_ метки», «имена файлов», «обратное преобразование»} train_generator = Learner.get_generator (batch_size, trans = trans, anot_file = train_annotation_file,
    Encoder = ssd_input_encoder) val_generator = anfiles = val_annotation_file,
    возвращает = {'processing_images', 'encoded_labels'}, encoder = ssd_input_encoder, val = True)

    5.Тренировочная модель

    .

    Leave a Comment

    Ваш адрес email не будет опубликован. Обязательные поля помечены *