Зачем идти в теоретическую информатику / исследования?

36

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

Можете ли вы убедить меня присоединиться к этому «миру»? За какими «сегментами» я могу следить? Есть ли что-нибудь о том, над какими темами работает ученый или исследователь?

JulioC
источник
18
Для нас большая честь, что сайт уже вдохновил вас задуматься о теории! И вы попали в нужное место, если хотите знать, над чем работает теоретический компьютерщик ... просто продолжайте читать, и вы узнаете!
Райан Уильямс
6
Это должно быть сообщество вики.
Дэйв Кларк
Просто присоединился сегодня и у меня был тот же вопрос ... Я занимался инжинирингом в области электроники, но в то время как в колледже начал чувствовать склонность к CS ... Никогда не имел формального знакомства с теорией, но теперь я рад, что нашел этот сайт ... И @ Júlio Souza спасибо, что задали этот вопрос. Я собираюсь следить за этим с сегодняшнего дня :)
Алан Тьюринг
@supercooldave изменил его на вики сообщества.
JulioC
Эпилог: JulioC стал разработчиком программного обеспечения.
Домоторп

Ответы:

32

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

  • Там красота. Это не то, что я могу объяснить (и были свидетелями того, как другие математики не смогли объяснить). Это как "желтый". Если вы этого не видели, я не уверен, что смогу сообщить вам, что это такое. Но так как вы увлеклись теорией, я полагаю, вы, возможно, испытали ее.
  • Там универсальность. Универсальность за пределами тезиса Черч-Тьюринга . В своей основе TCS исследует явления высокого и низкого уровня в информации - это «физика» информации. И поскольку информация качественно атомарна , теории информации есть, что сказать о физике (мой профессор менеджмента качества специально сказал мне, что любит теорию информации). Все это, как говорится, где-то между Pure Math и Engineering. Он обладает способностью и гибкостью вносить непосредственный вклад в то и другое, а также вносить непосредственный вклад в оба. Тем не менее, он борется на собственной границе.
  • Там сфера. На это намекала предыдущая пуля. Информатика находит свой путь во множество различных приложений - вещи каждый из DHD в стартапы заинтересован в Вы не найдете себя. , Как голодал для финансирования как чистая математика. (Вы все равно всегда будете нуждаться в финансировании.)
  • Там проблема. Взгляните на список открытых проблем теоретической информатики (и изучите их до конца исследования). Они очень жесткие - вот несколько причин, почему . Мы действительно не понимаем TCS - большинство наших доказательств сводятся к растущему количеству доказательств. Осталось так много работы!
Росс Снайдер
источник
19

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

Вопрос в том:

Пол Эрдос говорил о «Книге», где Бог хранит самое элегантное доказательство каждой математической теоремы. Это даже вдохновило книгу (которая, я думаю, теперь в ее 4-м издании): Доказательства из Книги.

Если бы у Бога была подобная книга для алгоритмов, какой алгоритм (ы), как вы думаете, был бы кандидатом (ами)?

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

Удачи !

Суреш Венкат
источник
16

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

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

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

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

Лев Рейзин
источник
Я действительно люблю математику, но я люблю программирование. Может быть, я мог бы найти способ работать с обеими «сторонами» одновременно, например, с машинным обучением [которое находится в области ИИ, верно?]. В следующем году я подам заявку на некоторые занятия в моем университете, такие как AI и анализ алгоритмов, которые могут мне помочь.
JulioC
Машинное обучение (по крайней мере, с моей точки зрения) не является областью искусственного интеллекта, хотя есть некоторые совпадения. Грубо говоря, ИИ фокусируется на решении проблем, которые обычно решают люди. Машинное обучение направлено на разработку алгоритмов и систем, которые изменяют поведение при просмотре данных. Таким образом, между двумя полями есть явное совпадение, но они далеко не одинаковы. Машинное обучение явно дает людям возможность заниматься как теорией, так и программированием, но я уверен, что это не единственное подполе CS, для которого это правда.
Лев Рейзин
11

Теория языка программирования интересна для молодых и старых. Это применение логики к реальному миру. Присоединяйтесь к параду!

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

  • ощутимое влияние на реальный мир: обширная работа системы типов в Haskell и других функциональных языках, происходящих из чисто логических идей (System F), значительно влияет на развитие таких языков, как Java (его ужасные обобщения, замыкания) и Scala (современный день, где-теория-встречается с практикой площадка).

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

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

  • и многое другое.

Дэйв Кларк
источник
11

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

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

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

Некоторые другие ребята, первые из которых обычно отождествлялись с Юрисом Хартманисом и Ричардом Э. Стернсом, пытались математически описать, что значит для функции (соответственно, проблемы) быть трудной или простой для вычисления (соответственно, для решения). Существует несколько мер сложности, в соответствии с которыми можно описать сложность проблем; наиболее распространенным является то, сколько времени нам нужно для их решения. Алану Кобхэму и Джеку Эдмондсу удалось определить разумное понятие «эффективных вычислений».

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

Центральная открытая проблема теории сложности, P против NP , является просто формализацией другого философски значимого вопроса: действительно ли труднее решить проблему, чем проверить, является ли предполагаемое решение ее действительно правильным? Я считаю, что этот вопрос стоит задавать и отвечать независимо от его практического значения.

Антонио Э. Поррека
источник
+1: понравился :) пс: кто - то выразили аналогичные мнения о блоге Скотта .
Каве
6

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

неимоверный
источник
1
Я согласен с вами, но, вероятно, он хочет знать, почему «вы» (или все остальные здесь) выбрали это поле.
MS Dousti
@ Júlio Souza: В названии это должно быть "теоретическим", а не "теоретическим".
MS Dousti
Я не хочу знать, лучше ли это, но я хочу знать, почему вы выбрали это поле, как сказал Садек.
JulioC
6

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

Если вы сделаете карьеру ученого-компьютерщика, ваша работа, вероятно, будет включать не только обработку и структурирование данных таким образом, чтобы их было полезно и эффективно использовать, но также и размышления о том, как и почему то, что вы делаете, работает, а также в какие границы он действует (если только по какой-то другой причине, кроме как понять это достаточно для его реализации). Это ОСОБЕННО относится к AI / NLP / IR, который ОЧЕНЬ трудоемок, даже если вы не в академических кругах. Фактически, вхождение в ИИ в значительной степени гарантирует, что вы будете активно заниматься «теоретическими» проблемами, и на самом деле может быть трудно найти работу без этого опыта. Так что это может быть одной из веских причин, по которой вы бы это рассмотрели.

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

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

АРС
источник
Спасибо за ответ. Я полностью согласен с вашим POV, работать над чем-то, просто делая это, не зная, почему это работает, как это работает, и если бы я мог сделать это лучше, это не то, чего я хочу. Я думаю, что могу попытаться сохранить свои планы с ИИ [или чем-то еще, что больше похоже на «практическое исследование»], но я буду продолжать пытаться узнать о других темах на TCS.
JulioC
6

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

Аарон Стерлинг
источник