Tensorflow یک کتابخانه متن باز برای زبان پایتون است که توسط گوگل در سال ۲۰۱۵ انتشار پیدا کرد. این کتابخانه در به برنامه نویسان کمک میکند تا بتواند طراحی و پیاده سازی شبکه های عصبی عمیق (Deep Learning Network) را به سادگی انجام دهند.
یادگیری عمیق (Deep Learning) چیست؟
یادگیری عمیق یا همان یادگیری ژرف که به آن شبکههای عصبی عمیق نیز میگویند، یکی از زیر حوزههای هوش مصنوعی و یادگیری ماشین است. اگر میخواهید بدانید، یادگیری ماشین چیست، این مقاله را حتماً مطالعه کنید.
در یک تعریف کلی، یادگیری عمیق، همان یادگیری ماشینی است که میتواند الگوهای پیچیدهتر را از میان دادهها استخراج کرده و یاد بگیرد. با این کار، ماشین درک بهتری از واقعیت وجودی دادهها پیدا کرده و میتواند ارزشها و الگوهای پنهان در دادهها را شناسایی کند.
ادامه خواندن “یادگیری عمیق (Deep Learning) چیست؟”آپاچی هدوپ (Apache Hadoop) چیست؟
هدوپ، یک چهارچوب متن باز است که با زبان برنامه نویسی جاوا، جهت توسعه و ذخیره سازی داده هایی با حجم بسیار بالا، توسط کمپانی Apache ساخته شده است. هدوپ معمولاً پردازش های را به صورت توزیع شده (یعنی بر روی چند کامپیتر مختلف) انجام می دهد و نتایج را به کامپیوتر مقصد برمیگرداند.
تفاوت هوش مصنوعی، یادگیری ماشین، دادهکاوی، یادگیری عمیق و علم داده
بسیاری از افراد (حتی افراد متخصص در حوزهی هوش مصنوعی یا علوم داده) ممکن است تفاوت دقیق واژههای مورد استفاده در حوزهی هوش مصنوعی و علوم داده را ندانند. دلیل آن هم شاید این باشد که واقعاً مرز روشنی بین این تعاریف وجود ندارد و در بسیار از مواقع این حوزهها با یکدیگر ترکیب میشوند. با این حال در این درس قصد داریم تا حد ممکن تفاوت این عبارات را با یکدیگر بیاموزیم و کاربرد هر یک را ببینیم.
ادامه خواندن “تفاوت هوش مصنوعی، یادگیری ماشین، دادهکاوی، یادگیری عمیق و علم داده”یادگیری ماشین (Machine Learning) چیست؟
یادگیری ماشین، زیر مجموعهای از هوش مصنوعی است. با استفاده از تکنیکهای یادگیری ماشین، کامپیوتر، الگوهای موجود در دادهها (اطلاعات پردازش شده) را یادگرفته و میتواند از آن استفاده کند. توجه داشته باشید که در این تکنیکها، یادگیریْ در یک سیستمِ کامپیوتری، بدون برنامهنویسیِ صریح (explicit programming) صورت میپذیرد. پاسخ به این سوالات که برنامهنویسیِ صریح چیست و یادگیری ماشین چطور کار میکند مواردی هستند که در این درس به آن پاسخ میدهیم.
Build System چیست؟
حتماً میدانید که کامپایل کردن یک برنامه (نوشته شده با یک زبان برنامه نویسی) چیست. برای مثال، یک برنامه، با زبان برنامه نویسی ++C نوشته اید، و حالا میخواهید این برنامه را اجرا کنید. برای اجرای این برنامه، باید در ابتدا، کد منبع (Source Code) برنامه را کامپایل (Compile) کنید، سپس خروجی کامپایل شده ی برنامه، به شما یک فایل (مثلا با پسوند EXE) میدهد. حالا شما میتوانید این برنامه را بر روی یک سیستم عامل (مثلا ویندوز) اجرا کنید.
CURL چیست؟
cURL که در واقع (seeURL) خوانده می شود، یک کتابخانه و همچنین یک خط فرمان (Command Line) است که برای انتقال اطلاعات به یک سرور استفاده می شود.
برای مثال فرض کنید، میخواهید با استفاده از یک زبان برنامه نویسی (مثلا PHP)، یک صفحه html را از اینترنت دانلود کنید. این کار به وسیله کتابخانه cURL در PHP امکان پذیر است. در واقع cURL از طریق پروتکل، http، میتواند این صفحه را از یک وب سایت دانلود کرده و در صورت نیاز در سرور خود ذخیره کنید.
پایگاه داده (Data Base) چیست؟
پایگاه داده، در واقع مجموعه ای از اطلاعات در سیستم کامپیوتری است که با یک نظم و ترتیب مشخص در کنار هم ذخیره می شوند. پایگاه داده ها، معمولاً داده ها را به صورت سطر و ستون در جداول مختلف، کنار یکدیگر قرار میدهند.
فرض کنید، شما یک سری اطلاعات مختلف، مثلاً اطلاعات ورود و خروج هر روز خود، به محل کارتان را در یک برگه یادداشت میکنید. برای مثال، سه ستون ایجاد میکشید. یک ستون مربوط به تاریخ، یک ستون مربوط به ساعت ورود و یک ستون هم مربوط به ساعت خروج از محل کار. این ها را در یک برگه یادداشت میکنید. با این کار، شما اطلاعات خود را به صورت منظم در کنار یکدیگر در سطر و ستون هایی قرار داده اید.
همین مثال، میتواند بر روی یک سیستم کامپیوتر انجام شود. شاید تا به حال با نرم افزار ماکروسافت اکسل، کار کرده باشید. خوده اکسل نیز، یک نوع پایگاه داده شامل سطرها و ستون های مختلف است، که میتواند مقادیر مختلفی را در بر بگیرید.
پایگاه داده های معروف امروزی، بیشتر پایگاه داده های رابطه ای (Relational DataBases) هستند. هر چند پایگاه داده های NoSql هم کاربرد فراوانی دارند. از محبوب ترین پایگاه داد های رابطه ای، میتوان به SQL Server، Mysql، Sqlite اشاره کرد. این پایگاه داده ها، در نرم افزارهای مختلف، مورد استفاده برنامه نویسان قرار میگیرند. هنگامی که برنامه نویسی بخواهد، اطلاعات موجود خود را بر روی کامپیوتر، ذخیره کند (تا بعداً بتواند به آن دسترسی داشته باشد)، میتواند از این پایگاه داده ها، استفاده کند. مثلاً یک برنامه نویس، میخواهد، اطلاعات زمانی مربوط به خرید های یک کاربر را برای همیشه، به صورت پایدار، بر روی سیستم کامپیوتر ذخیره کند. برای این کار یک جدول، ایجاد کرده و با ایجاد دو ستون (نام کاربری، تاریخ خرید) زمان های خرید یک کاربر را بر روی سیستم، ذخیره میکند.
معمولاً برای اتصال یک زبان برنامه نویسی به یک پایگاه داده، تنظیم کننده هایی (Adaptors) وجود دارد.
پایگاه داده های امروزی، بسیار متنوع تر از پایگاه داده های رابطه ای (Relational Database) هستند. پایگاه داده های NoSql، پایگاه داده های توزیع شده (Distributed Databases)، پایگاه داده های گراف (Graph DataBases) از انواع مختلف پایگاه داده های موجود هستند.
منبع و اطلاعات بیشتر را میتوانید از اینجا پیدا کنید.
وردپرس (wordpress) چیست؟
وردپرس یک سیستم مدیریت محتوای متن باز، برای زبان برنامه نویسی پی اچ پی است. به بیانی ساده تر، وردپرس، یکی از ساده ترین ابزارها، جهت ساخت یک وبلاگ یا یک وب سایت با زبان برنامه نویسی پی اچ پی است.
اگر شما بخواهید، یک وب سایت، یا یک وبلاگ داشته باشید، بایستی از زبان های برنامه نویسی موجود استفاده کرده و ماژول ها (قسمت ها)ی مختلف آن را طراحی کنید. سیستم مدیریت مطالب، مدیریت کاربران، سیستم عضویت و ثبت نام، مدیریت تصاویر و رسانه ها، آمار کاربران و هزاران قسمت دیگر، که هر کدام باییستی جدا جدا برنامه نویسی شوند. البته اگر میخواهید چرخ را دوباره اختراع کنید، میتوانید همه این ماژول ها را، از ابتدا، با یکی از زبان های برنامه نویسی موجود، بنویسید. ولی راه حل ساده تر، استفاده از وردپرس (wordpress) است.
وردپرس میتواند به سادگی و در عرض کمتر از چند دقیقه، نصب و قابل استفاده شود. همچنین در مخزن سایت وردپرس، افزونه های مختلفی قرار دارد که میتواند امکانات بسیار زیادی را به سایت یا وبلاگ شما اضافه کند. مثلا، اگر میخواهید بدانید که کاربرانی که سایت شما را بازدید کرده اند، از چه صفحاتی بازدید کرده اند، میتوانید یک افزونه آمارگیر نصب کرده و کاربران خود را رصد کنید.
وردپرس رایگان است، و میتوانید نسخه های مختلف آن را (با زبان های مختلف، مثلا فارسی یا انگیسی) دانلود کرده و با یک آموزش ساده، یک وب سایت با امکانات مختلف راه اندازی کنید.
وردپرس از قابلیت تم (پوسته)های سفارشی نیز پشتیبانی می کند. به این صورت که میتوانید یک پوسته یا همان قالب را به شکل های مختلف طراحی کرده و آن را بر روی وردپرس نصب کنید. به این صورت سایت شما، از لحاظ ظاهری، میتواند با تمامی سایت های موجود تفاوت داشته باشد.
وردپرس، مناسب شرکت ها، اشخاص و سازمان های مختلفی است که نیاز دارند یک وب سایت قدرتمند با امکانات مختلف و سریع راه اندازی کنند.
منبع و اطلاعات بیشتر را میتوانید در اینجا و اینجا پیدا کنید.
آپاچی اسپارک (Apache Spark) چیست؟
آپاچی اسپارک یک موتورِ قدرتمند، برای پردازش دادههای بزرگ به صورتِ توزیعشده است. منظور از دادههای بزرگ، داده هایی است که معمولاً بر روی یک کامپیوتر نمیتوانند پردازش شوند (مثلا دادههایی که از مقدار حافظهی اصلیِ (RAM) یک کامپیوتر بیشتر هستند). منظور از «توزیعشده» این است که، دادهها، بر روی چندین کامپیوتر (که به آنها Node یا گره گفته میشود)، قرار دارند و بایستی پردازش شوند. (درس سیستم توزیعشده چیست را خوانده باشید)
مثالی را در نظر بگیرید که میخواهید بر روی یک فایل بسیار بزرگ متنی، مثلا یک فایل که بازدید کاربران یک سامانه رادر طیِ ۵سال ذخیره کرده است، عملیاتی انجام دهید. مثلا، تمامی کاربرانی که از شهر تهران، وارد سیستم شدهاند، را واکشی کنید. اگر این فایل بسیار بزرگ باشد، یا اینکه چندین فایل مختلف بسیار بزرگ داشته باشید (مثلا داده های هر ماه را بر روی یک فایل ذخیره کرده باشید)، قطعاً فیلتر کردنِ این فایلهای سنگین، به زمان زیادی احتیاج دارد. ممکن است، در مثالِ بالا، حدودِ ۱۲ساعت، پردازش بر روی دادهها انجام شود، تا کاربرانِ شهرِ تهران را از بین تمامی شهرها فیلتر کنید.
برای حل این مشکل (و مشکلاتی از این دست)، آپاچی اسپارک یک راه حل بسیار مناسب به نظر میرسد. اگر شما چندین کامپیوترِ متوسط (که زیاد هم قدرتمند نیستند) در اختیار داشته باشید، می توانید با استفاده از موتور آپاچی اسپارک (Apache Spark)، این قبیل کارها را به صورت موازی (Parallel) بر روی کامپیوترهای مختلف اجرا کرده و نتیجه را به صورت تجمیع شده، بر روی یک سیستم قرار دهید.
اسپارک میتواند از سیستمهای مختلفِ ذخیرهسازیِ توزیع شده (مانند HDFS یا Cassandra) استفاده کند. اسپارک در مقایسه با هدوپ (Hadoop)، میتواند بسیار سریعتر باشد. این موتورِ پردازشِ سریع، در سال ۲۰۰۹ در دانشگاه برکلی تولید شده است.
آپاچی اسپارک، همچنین از کتابخانه های مختلفی نیز تشکیل شده است. MLib، کتابخانه یادگیری ماشین (Machine Learning) برای اسپارک است و توانایی پردازش الگوریتمهای مختلف دادهکاوی (Data Mining) و یادگیریماشین را بر روی بستر اسپارک فراهم می آورد. Graphx، یک کتابخانه دیگر از اسپارک است. این کتابخانه، توانایی پردازش و تحلیل دادههای گراف (یعنی داده هایی که به صورت گراف نمایش داده می شوند) را دارد. Apache Spark Streaming نیز یک بخش دیگر از آپاچی اسپارک است. این بخش، قابلیت پردازش جریان دادهها (داده هایی که در یک بازهی مشخص دیده میشوند، مثلا یک بار دیده می شوند و از بین می روند) را نیز دارد.
اسپارک همچنین از زبان های برنامه نویسی متعددی پشتیبانی می کند. Java، Python، R، Scala و همچنین SQL از زبان هایی است که میتوانید، به وسیله آن، با دادههای موجود در اسپارک کار کنید.
منابع و اطلاعات بیشتر را میتوانید در اینجا و اینجا پیدا کنید.