|
|
Разработка Искусственного Интеллекта!
Останнє повідомлення 21-09-2007, 9:34 від Mike Chaliy. 18 відповіді.
-
22-02-2007, 8:50 |
-
shuklin
-
-
-
Зареєстрований 22-08-2006
-
Украина, Харьков
-
Повідомлення 100
-
Бали 2,235
-
|
Разработка Искусственного Интеллекта!
Привет Всем!
Недавно Google объявил о скором выходе их версии ИИ, интересно, Microsoft собирается предложить что нибудь свое в ответ на это? Кого нибудь из здесь присутсвующих интересует разработка ИИ в среде .NET? Например, Я лично думаю, что C# подходит для разработок в сфере ИИ гораздо лучше чем Java.
С уважением, Дмитрий
|
|
-
22-02-2007, 14:23 |
-
demon_xxi
-
-
-
Зареєстрований 11-11-2006
-
Харьков
-
Повідомлення 244
-
Бали 4,220
-
|
Re: Разработка Искусственного Интеллекта!
Я думаю нелепо сравнивать в очередной раз C# и Java, особенно вт аком контексте.
Туту уж, извините, .net пока отстаёт т.к. в ИИ очень важна теория и наработки. Вот именно в этом плане у Java фора побольше. Есть несколько библиотек (открытые и закрытые) в очень и очень большим и способностями. Стоит ли говорить, если их разработкой занимаются обычно военные и пр. выжные отрасли. На память не вспомню щаспакеты. Месяца 2 назад пробегался, но тогда искал под шарп реализацию.
Так вот в этом плане есть пару статей индусов тока кодепроджекте. Одна - переделка с С++ по известной книге. Но в итоге вышел уродец, которым нереально пользоваться - проще своё писать. Вторая более нормальная, но там костяк нейронов. А этого мало для того чтобы говорить об ИИ =)
Так что поживём-увидим. Думаю тут наиболее важные наработки в плане лексикографического анализа, т.к. это необходимо будет для WEB 3.0 ;) В этом плане уже и .NET продвинулся! Есть открытый проектик тоже на кодепроджекте можно ссылку взять. Толково вроде разбирает и база пополняется вроде. Так что если интересно - можно сюда копать.
А в целом - жаль что мало у нас подобных заказов =) Хоть в гугль беги ... Пока что заниматься подобным в плане хобби не хватает катастрофически времени.
Лучше побыть дураком 5 минут, чем остаться им на всю жизнь ...
|
|
-
26-02-2007, 6:01 |
-
shuklin
-
-
-
Зареєстрований 22-08-2006
-
Украина, Харьков
-
Повідомлення 100
-
Бали 2,235
-
|
Re: Разработка Искусственного Интеллекта!
demon_xxi:Туту уж, извините, .net пока отстаёт т.к. в ИИ очень важна теория и наработки.
С этим тезисом я могу лишь частично согласиться. Наработки важны теоретические, а практические очень легко наверстать если знаешь что делать. ИИ - направление еще не оформившееся и, извините, наработки в виде очередного бакпроп имхо чепуха. Поэтому для платформы реализации околоИИшных задач важны в первую очередь технические ее характеристики а не наличие практических наработок. А вот тут .NET оставила яву далеко позади, хотябы благодаря наличию PInvoke.
|
|
-
16-03-2007, 18:52 |
-
demon_xxi
-
-
-
Зареєстрований 11-11-2006
-
Харьков
-
Повідомлення 244
-
Бали 4,220
-
|
Re: Разработка Искусственного Интеллекта!
Тоже частично соглашусь, но ни в коем случае не буду спорить =)
Теория аодинаково применима к любой платформе - на то она и теория. Быстро наверстать - это конечно можно, но всё же удобно когда всё есть и не надо изобретать велосипед. Не забываем, что юольшинство пытаясь разобраться с новым для них направлением ИИ встречают много нового, и учиться по примерам и наработкам, а не учить сухую теорию и "пытаться" все это воплотить. Оно то не сложно, но для нового в этом человека, пусть даже ацкого програмиста - накладно.
Это, по моему, и есть те благоприятствующие или наоборот факторы. Я просто сам через это прошёл. И когда пытаешься поэксперементировать для понимания с той же обучаемостью простой сети нейронов - сложно сперва даже представить реализацию нейрона. А ведь книжкипишут именно об работе сети ... а ты азов не знаешь и плаваешь. смутно всё это.
Для начала нужно покрутить примеры и фреймворки.
shuklin:
А вот тут .NET оставила яву далеко позади, хотябы благодаря наличию PInvoke.
Вот тут, честно, не понял =( При чём тут PInvoke ?
Лучше побыть дураком 5 минут, чем остаться им на всю жизнь ...
|
|
-
07-06-2007, 6:46 |
-
shuklin
-
-
-
Зареєстрований 22-08-2006
-
Украина, Харьков
-
Повідомлення 100
-
Бали 2,235
-
|
Re: Разработка Искусственного Интеллекта!
> Вот тут, честно, не понял =( При чём тут PInvoke ?
Если речь о студенческих работах, то для изучения действительно лучше исспользовать что нибудь типа матлаба. Но меня интересует разработка промышленных систем с элементами ИИ. А тут очень важна оптимизация. ИИ-алгоритмы мягко говоря очень рессурсоемки. С одной стороны .NET удобен наличием развитой FCL а с другой umnanaged code очень удобен возможностью использования всяческих параноидальных методик оптимизации ))) Вот для совмещения этих двух плюсов в одном проекте PInvoke саоме то.
|
|
-
12-06-2007, 11:50 |
-
Dmitry Peleshenko
-
-
-
Зареєстрований 24-11-2006
-
Харьков
-
Повідомлення 23
-
Бали 514
-
|
Re: Разработка Искусственного Интеллекта!
Помоему на сегодняшний день в этой области еще так много нужно сделать в теоретическом плане, что о том какую технологию использовать для реализации не приходится пока говорить. Я думаю, что одинаково подходит и Java, и С# (2.0 который), и С++, и дaже Pascal:). С теоретической точки зрения эти языки мало чем отличаются, разве что сборка мусора может как то выделить некоторые из них. Хотя я не совсем понимаю как это поможет именно в ИИ. Интересной может быть, на мой взгляд, идея внесения декларативных, SQL подобных конструкций в 3-м С#. Это здорово продвигает С# на фоне других языков, вот бы еще логику предикатов добавить. Что точно хорошо для ИИ так это Prolog или полностью декларативный язык Datalog. Хотя тут тоже надо заметить, что эти языки никак не помогут в разработке решений на основе нейронных сетей. shuklin:
Если речь о студенческих работах, то для изучения действительно лучше
исспользовать что нибудь типа матлаба. Но меня интересует разработка
промышленных систем с элементами ИИ. А тут очень важна оптимизация.
ИИ-алгоритмы мягко говоря очень рессурсоемки.
Есть такое мнение и не только мое :), что для качественной реазации ИИ
решений нужно менять платформу, как говорится на уровне сюжета.
Аппаратную платформу менять надо.
-- Dmitry Peleshenko --
|
|
-
13-06-2007, 1:56 |
-
shuklin
-
-
-
Зареєстрований 22-08-2006
-
Украина, Харьков
-
Повідомлення 100
-
Бали 2,235
-
|
Re: Разработка Искусственного Интеллекта!
Dmitry Peleshenko: Помоему на сегодняшний день в этой области еще так много нужно сделать в теоретическом плане, что о том какую технологию использовать для реализации не приходится пока говорить.
Если мы говорим об ИИ с большой буквы, то да. А если говорим о ИИ как о научном направлении 05.13.23 - то разработки в этой области уже давно доросли до практического применения. Меня в данном случае интересует доведение результатов, полученных в моей диссертационной работе, до промышленного уровня.
Dmitry Peleshenko: Интересной может быть, на мой взгляд, идея внесения декларативных, SQL подобных конструкций в 3-м С#. Это здорово продвигает С# на фоне других языков, вот бы еще логику предикатов добавить. Что точно хорошо для ИИ так это Prolog или полностью декларативный язык Datalog. Хотя тут тоже надо заметить, что эти языки никак не помогут в разработке решений на основе нейронных сетей.
Очень я сомневаюсь в полезности этих нововведений. И LINQ сделан не очень качественно с точки зрения ИИ. Нужно было менять концепции работы .NET виртуальной машины. Вот тогда бы декларативные конструкции были бы действительно самое оно для ИИ.
Dmitry Peleshenko: Есть такое мнение и не только мое :), что для качественной реазации ИИ решений нужно менять платформу, как говорится на уровне сюжета. Аппаратную платформу менять надо.
Вторую фон-Неймановскую архитектуру еще придется подождать. Производители процессоров еще не доросли до ее внедрения в вычислительные машины широкого применения. Хотя сепциализированные вычислители на ее основе выпускают серийно.
|
|
-
13-06-2007, 10:57 |
-
Dmitry Peleshenko
-
-
-
Зареєстрований 24-11-2006
-
Харьков
-
Повідомлення 23
-
Бали 514
-
|
Re: Разработка Искусственного Интеллекта!
shuklin:Очень я сомневаюсь в полезности этих нововведений. И LINQ сделан не очень качественно с точки зрения ИИ. Нужно было менять концепции работы .NET виртуальной машины. Вот тогда бы декларативные конструкции были бы действительно самое оно для ИИ.
Трудно не согласиться. Может я излишне оптимистичен, но я надеюсь, что LINQ это только начало. shuklin:
Если мы говорим об ИИ с большой буквы, то да. А если говорим о ИИ как о научном направлении 05.13.23 . . .
Прочитав коротенькую заметку про гугл мне показалось что речь идет именно о "ИИ с большой буквы". Как то все расплывчато, какие именно принципы собираются положить в основу "своеобразного языка программирования, основанного на принципах работы головного мозга" непонятно. По поводу архитектуры, просто нет массового использования технологий связанных с ИИ. Что будет делать бухгалтер с нейрокомпьютером. Может дело в том, что нет концепции широкого применения ИИ решений.
-- Dmitry Peleshenko --
|
|
-
13-06-2007, 11:16 |
-
shuklin
-
-
-
Зареєстрований 22-08-2006
-
Украина, Харьков
-
Повідомлення 100
-
Бали 2,235
-
|
Re: Разработка Искусственного Интеллекта!
Dmitry Peleshenko:Трудно не согласиться. Может я излишне оптимистичен, но я надеюсь, что LINQ это только начало.
В контексте нашей беседы важно не просто продолжение, а продолжение в правильном направлении. Опять ведь ограничутся поддержкой RAD бухгалтерии и все. А ведь даже для ии с маленькой буквы маловато этого будет. Ну с другой стороны врядли Microsoft согласится переусложнять инструмент фичами для ИИ мало применимыми в других областях, особенно если их интересует ERP в качестве таргет аудитории
Ну это с одной сороны плохо, зато с другой выводит Microsoft из этого сектора рынка и освобождает место для других конкурентов 
|
|
-
15-06-2007, 4:37 |
-
Mike Chaliy
-
-
-
Зареєстрований 16-11-2006
-
Ukraine, Kharkiv
-
Повідомлення 758
-
Бали 13,847
-
|
Re: Разработка Искусственного Интеллекта!
Dmitry Peleshenko:Интересной может быть, на мой взгляд, идея внесения декларативных, SQL подобных конструкций в 3-м С#. Это здорово продвигает С# на фоне других языков, вот бы еще логику предикатов добавить.
Хвилиночку, Linq зовсім не декларативний. Він чітко каже що треба взяти отаку і отаку інформацію з такого і такого місця. Це вже DLinq виконує SQL запит, який є декларативним. Linq це не більше аніж синтаксичний цукор. А під цим цукром все як було імперативним, так і залищилось.
Я не розуміюсь на ІІ, але мені здається що вам потрібене щось не СХОЖЕ на декларативне, а саме декларативне. Хоча мені справді цікаво, невже це так складно зробити шар абстракції, щоб можна було щось розробляти цими абстракціями, а вже потім користуючись інформацією з цих абстракцій, реалізувати виконання? Мені чомусь здається що кільксть таких абстракцій не буде дуже виликою.
MCPD(Web,Windows,Enterprise), MCTS (WPF, WCF)
|
|
-
26-06-2007, 11:50 |
-
Dmitry Peleshenko
-
-
-
Зареєстрований 24-11-2006
-
Харьков
-
Повідомлення 23
-
Бали 514
-
|
Mike Chaliy: Хвилиночку, Linq зовсім не декларативний. Він чітко каже що треба взяти
отаку і отаку інформацію з такого і такого місця. Це вже DLinq виконує
SQL запит, який є декларативним. Linq це не більше аніж синтаксичний
цукор.
Ответил не сразу, пришлось скачать Orcas и убедиться в том что все именно так. Помоему выражение IEnumerable<string> Names = from c in clients join v in visits on c.Id equals v.ClientId where v.DateTime.Year == 2007 && v.DateTime.Month == 1 && v.DateTime.Day == 12 select c.Name;не уступает SQL по "декларативности". Согласен, гдето там внутри фреймворка выполнилось, может быть, два вложенных цикла или может быть еще что то, но я то об этом не задумывался, я просто сказал что хочу получить. С таким же успехом можно сказать что любая программа в конечном итоге выльется в набор процессорных инструкций. С обычным SQL, конечно, все более сложно, план запроса меняется в зависимости от наличия индексов и др. особенностей обрабатываемых данных. Хотя, страничка "Query Expression" документации по Visual Studio Express Orcas Beta 1 говорит нам, что "In some circumstances, your queries can be optimized by LINQ before execution." (ms-help://MS.VSExpressCC.v90/MS.msdnexpress.v90.en/dv_vbalr/html/c158272d-61ee-4845-a454-dc5b994abac5.htm) Так что сам стиль "описания того что вам нужно от машины" в LINQ и SQL совпадает. Вот текст программы с которой я экспериментировал: class Program { class Client { public Client(int id, string name, string phone, int age) { Id = id; Name = name; Age = age; } public int Id; public string Name; public int Age; }
class Visit { public Visit(int client, DateTime dateTime) { ClientId = client; DateTime = dateTime; } public int ClientId; public DateTime DateTime; }
static void Main(string[] args) { List<Client> clients = new List<Client>(); List<Visit> visits = new List<Visit>(); clients.Add(new Client(1, "John", "555", 25)); clients.Add(new Client(2, "Mary", "552", 30)); clients.Add(new Client(3, "Eugene", "553", 60)); clients.Add(new Client(4, "Fantomas", "556", 33)); visits.Add(new Visit(1, new DateTime(2007, 1, 12))); visits.Add(new Visit(1, new DateTime(2007, 2, 12))); visits.Add(new Visit(1, new DateTime(2007, 3, 12))); visits.Add(new Visit(2, new DateTime(2007, 1, 5))); visits.Add(new Visit(4, new DateTime(2007, 1, 12))); IEnumerable<string> Names = from c in clients join v in visits on c.Id equals v.ClientId where v.DateTime.Year == 2007 && v.DateTime.Month == 1 && v.DateTime.Day == 12 select c.Name;
foreach (string i in Names) Console.WriteLine(i); }
}Прошу прощения за небольшой оффтоп, с точки зрения ИИ :)
-- Dmitry Peleshenko --
|
|
-
28-06-2007, 4:49 |
-
Mike Chaliy
-
-
-
Зареєстрований 16-11-2006
-
Ukraine, Kharkiv
-
Повідомлення 758
-
Бали 13,847
-
|
Dmitry Peleshenko:Ответил не сразу, пришлось скачать Orcas и убедиться в том что все именно так. Помоему выражение IEnumerable<string> Names = from c in clients join v in visits on c.Id equals v.ClientId where v.DateTime.Year == 2007 && v.DateTime.Month == 1 && v.DateTime.Day == 12 select c.Name; не уступает SQL по "декларативности". Согласен, гдето там внутри фреймворка выполнилось, может быть, два вложенных цикла или может быть еще что то, но я то об этом не задумывался, я просто сказал что хочу получить. С таким же успехом можно сказать что любая программа в конечном итоге выльется в набор процессорных инструкций. С обычным SQL, конечно, все более сложно, план запроса меняется в зависимости от наличия индексов и др. особенностей обрабатываемых данных.
Можливо з точки ІІ зору це і так. Хоча все одно не зрозуміло яка вигода від цієї декларатиівності? Адже декларативність необходна щоб було можливо змінити інтерперетацію цього декларативного синтаксису. А у LINQ це не можлино, він компілюється в звичайний ІЛ код. Тобто він не надає змінити інтерпритацію, а ні в рантаймі, ані при компіляції.
Dmitry Peleshenko:
Хотя, страничка "Query Expression" документации по Visual Studio Express Orcas Beta 1 говорит нам, что "In some circumstances, your queries can be optimized by LINQ before execution." (ms-help://MS.VSExpressCC.v90/MS.msdnexpress.v90.en/dv_vbalr/html/c158272d-61ee-4845-a454-dc5b994abac5.htm) Так что сам стиль "описания того что вам нужно от машины" в LINQ и SQL совпадает.
Швидше за все мова йшла про DLINQ, тобто вони можуть оптимізувати згенерований скрипт. Я копався з об'єктною моделлю LINQ, там все типізовано. Тобто все що ви напишете, компілятором згенерує повністю передбачуваний код.
Dmitry Peleshenko: Прошу прощения за небольшой оффтоп, с точки зрения ИИ :)
Швидше за все модератор викинить нас в іншу гілку.
MCPD(Web,Windows,Enterprise), MCTS (WPF, WCF)
|
|
-
21-09-2007, 6:04 |
-
21-09-2007, 6:39 |
-
Mike Chaliy
-
-
-
Зареєстрований 16-11-2006
-
Ukraine, Kharkiv
-
Повідомлення 758
-
Бали 13,847
-
|
LR___: Mike Chaliy:
Можливо з точки ІІ зору це і так. Хоча все одно не зрозуміло яка вигода від цієї декларатиівності? Адже декларативність необходна щоб було можливо змінити інтерперетацію цього декларативного синтаксису. А у LINQ це не можлино, він компілюється в звичайний ІЛ код. Тобто він не надає змінити інтерпритацію, а ні в рантаймі, ані при компіляції.
Вибачте, не могли б Ви детальніше (краще на прикладі) пояснити що маєте на увазі, коли говорите про можливість "змінити інтерпретацію"?
Схоже термін обрав не зовсім вдало. Мабіть не інтерпритацію, а реалізацію.
Приклад дуже синтетичний, але здається достатній:
Запит select a,b from test. Ми задекларували що хочемо отримати колнки a та b з таблиці test. Відаємо це серверу, а сервер сам обирає яким чином це зробити. Тобто віно має можливість просто пербрати усі рядки, або пербрати усі сторінки, а вже з них рядки.
MCPD(Web,Windows,Enterprise), MCTS (WPF, WCF)
|
|
-
Сторінка 1 з 2 (19 рядкiв)
1
|
|
|