YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Spanish subtitles

← MaxEnt 7 A Real-World Example: Modeling the Open Source Ecosystem, Part 1

Get Embed Code
2 Languages

Showing Revision 9 created 07/17/2017 by Matias Agelvis.

  1. En la sección anterior lo guíe
  2. por un conjunto de derivaciones
  3. matemáticas diseñadas para producir
  4. la máxima entropía de
  5. un problema de juguete,
  6. el problema de juguete es, como podemos
  7. modelar la distribución de tiempos de
  8. llegada de taxis en Nueva York, basados en
  9. un pequeño grupo de datos, y ese es un
  10. problema que puede ser de
    su interés personal
  11. pero ciertamente no es un problema de
    profundo interés científico.
  12. En esta sección, lo que
  13. voy a hacer es presentarle un problema
  14. razonablemente interesante y mostrarle
  15. como el enfoque de la máxima entropía
  16. puede aclarar algunas
    propiedades interesantes
  17. de ese sistema.
  18. En particular, el sistema que
    tengo en mente es
  19. el que la gente tiende a llamar
    el ecosistema
  20. de código abierto. Es la gran comunidad de
  21. gente que escribe código para que sea
  22. abierto, accesible, y depurable,
  23. y en general
  24. producido no por un individuo,
  25. ni por una corporación,
  26. con derechos de autor y
    control sobre el código,
  27. sino por una comunidad de gente
  28. compartiendo y editando código entre si
  29. El ecosistema de código abierto
  30. domina una gran fracción del código de
  31. código de computadora que usado por
    nosotros hoy,
  32. incluyendo no solo Mac OS X, claro, Linux.
  33. Es una gran historia de triunfo y
  34. nos gustaría estudiarla científicamente.
  35. Use la palabra ecosistema
  36. en parte, porque mucho de lo que voy a
  37. decirle es un conjunto de herramientas y
  38. derivaciones que aprendi de John Harte
  39. y de la gente que trabaja con John Harte
  40. en el enfoque de máxima entropía a…
  41. no sistemas sociales, si no,
    a sistemas biológicos,
  42. y en particular a ecosistemas.
  43. El libro de John Harte
    "Máxima entropía y ecología"
  44. Se lo recomiendo como
  45. una fuente de información en este tipo
  46. de herramientas que voy a mostrarle ahora.
  47. Mi objetivo es mostrarle
  48. que inclusive argumentos simples basados
  49. en máxima entropía pueden proveer
  50. conocimiento científico muy profundo.
  51. Lo que voy a usar
  52. como mi fuente de datos, porque ahora
  53. voy a estudiar el mundo empírico,
  54. es la pagina SourceForge.
  55. SourceForge ya no es el mayor repositorio
  56. de software abierto, quizás Github
  57. lo eclipso, pero por un
    largo periodo de tiempo
  58. tal vez desde 1999, y recopilamos datos
  59. hasta 2011 sobre esto, tiene un enorme
  60. archivo de proyectos que van desde
  61. diferentes tipos de juegos de computadora
  62. hasta editores de texto, a software de
  63. negocios y matemático, parte del código
  64. que he usado en mi propia investigación
    esta en SourceForge.
  65. Es un gran ligar para estudiar,
    en particular,
  66. el uso de lenguajes computadora.
  67. Aquí, lo que he graficado es la
  68. distribución de lenguajes usados
    en la comunidad
  69. de código abierto y
    encontrados en SourceForge.
  70. En el eje x tenemos
    el logaritmo del numero
  71. de proyectos escritos en
    un lenguaje en particular
  72. Puede ver que el logaritmo de cero es uno.
  73. En la base de datos hay alrededor de doce
  74. lenguajes que están en el
    orden de un solo proyecto
  75. Estos lenguajes son extremadamente raros,
  76. en otras palabras, en el movimiento de
  77. código abierto. Contrariamente
  78. en el otro extremo de esta escala
  79. logarítmica, aquí, en el cuatro,
    diez a la cuatro es diez mil,
  80. vemos que hay un pequeño numero de
  81. lenguajes extremadamente populares,
  82. estos son los lenguajes mas populares que
  83. encontrara en SourceForge,
  84. Tienen una popularidad desmesurada, ok?
  85. Y si sabe algo acerca de programación de
  86. computadoras no le sorprenderá saber que
  87. estos lenguajes son mayoritariamente
  88. derivados de C, como C, C++, Java, ok?
  89. En el medio entre estos
    extremadamente poco comunes,
  90. y estos increíblemente comunes
  91. que son mas o menos como las bacterias
  92. del movimiento de código abierto
  93. por aquí, en el medio tiene un gran numero
  94. de lenguajes moderadamente populares, ok?
  95. Así, esta distribución de lenguajes
  96. es lo que vamos a tratar de explicar
  97. usando métodos de máxima entropía, ok?
  98. Hay un pequeño numero de
    lenguajes poco comunes,
  99. un gran numero de lenguajes
    moderadamente populares,
  100. y un numero muy pequeño de
  101. lenguajes extremadamente populares, ok?
  102. Entonces, grafiqué eso
    como una distribución
  103. de probabilidad, de hecho, P de n donde n
  104. es el numero de proyectos en la comunidad
  105. de código abierto que usan ese lenguaje,
  106. y esta el la probabilidad
    de que su lenguaje
  107. tenga n proyectos en la comunidad de
  108. código abierto, lo que nos gustaría hacer
  109. construir un modelo de máxima entropía de
  110. esta distribución de aquí, yo represente
  111. los mismo datos de una manera
    un poco diferente,
  112. así es como la gente
    tiende a representarlos
  113. esta es la distribución del
    ranking de abundancia
  114. lo que los ecologistas llaman
  115. una distribución de
    abundancia de especies,
  116. Así, el lenguaje en el tope, aquí, es el
  117. lenguaje con el mayor numero de proyectos,
  118. y no va a sorprenderlo saber que
  119. resulta ser Java,
    hay veinte mil proyectos
  120. escritos en Java, el segundo en el ranking
  121. como puede ver es C++,
  122. luego C, luego PHP,
    y estos lenguajes raros
  123. tienen un ranking mas bajo,
  124. así, que números altos
    significan rangos bajos,
  125. como en 3er lugar, 4to lugar, entonces,
  126. el 100mo es el puesto
    esta el desafortunado
  127. lenguaje llamado Turing,
  128. que hasta donde se, solo hay dos proyectos
  129. escritos en Turing en el archivo,
  130. y puede ver algunos de mis
    lenguajes favoritos
  131. como Ruby, están por aquí, en esta zona
  132. de moderada popularidad.
  133. Entonces representamos esos datos,
  134. son los mismos datos, lo que acabo de
  135. graficar es el logaritmo de la abundancia
  136. en este eje, y aquí esta el ranking lineal
  137. en cambio aquí, donde le mostré
    el logaritmo, ok?
  138. esta es una gráfica log-log, esta es
  139. conocida como una gráfica log-lineal,
  140. así que estos son los datos reales.
    Así que la primera cosa que intentare
  141. es…
  142. Una distribución de máxima entropía de
  143. abundancia de lenguajes,
    en otras palabras,
  144. a la probabilidad de encontrar un lenguaje
  145. con n proyectos, y lo que vamos a hacer es
  146. vamos a restringir solo una cosa,
  147. la popularidad promedio de un lenguaje
  148. esta va a ser nuestra restriccion para el
  149. problema de máxima entropía, y vamos
  150. a elegir la distribución de probabilidad,
    p de n
  151. que maximiza la entropía,
    suma negativa p log p
  152. y de cero a infinito, de p log p,
  153. vamos a tratar de maximizar
    estas cantidades
  154. sujetas a esta restricción, y claro,
  155. siempre sujeta a la
    restricción de normalización,
  156. que p(n) es igual a la unidad, ok?
  157. Entonces esa es mi otra restricción,
  158. y claro, ya sabemos como resolver
  159. este problema,
    conocemos la forma funcional,
  160. es exactamente el mismo problema
  161. que el que aprendió a resolver cuando
  162. modelo el tiempo de espera de un taxi
  163. en Nueva York, ok? Usted modelo
  164. ese problema exactamente
    de la misma manera,
  165. Así que, solo voy a restringir el promedio
  166. del tiempo de espera, aquí solo voy a
  167. restringir el promedio de la popularidad
  168. de un lenguaje, popularidad significa el
  169. numero de proyectos
    escritos en ese lenguaje
  170. en el archivo, y así, sabemos que la forma
  171. funcional se vera como, se ve como
  172. algo como e a la menos lambda n, ok?
  173. todo sobre Z, y luego todo lo que tenemos
  174. que hacer es ajustar lambda y Z, ok?
  175. Tal que reproduzca la abundancia correcta,
  176. como la vemos en los datos, así que esta
  177. es la distribución de máxima entropía,
  178. es también, claro, un modelo exponencial,
  179. tiene una forma exponencial,
    y si realmente
  180. encontramos el valor de lambda y Z que
  181. reproducen mejor los datos,
  182. en otras palabras,
  183. que mejor satisfacen esta restricción,
    y satisfacen la máxima entropía,
  184. esto es lo que encontramos, ok?
  185. Esta banda roja de aquí
    son los contornos
  186. sigmas uno y dos del ranking
  187. de la distribución de abundancia,
    y lo que quiero que vea en
  188. esta gráfica es que se ajusta a los datos
    un increíblemente mal.
  189. La distribución de máxima entropía
  190. con esta restricción
  191. no reproduce los datos,
  192. no es capas de explicar…
  193. nuestro modelado, los datos de ninguna
  194. manera razonable, sub predice
  195. estos lenguajes extremadamente populares,
  196. es incapaz, en otras palabras,
    de reproducir el hecho
  197. de que hayan lenguajes como C y Python,
  198. que son extremadamente populares,
  199. sobre predice esta especie de régimen
  200. mesoscopico, sobre predice los lenguajes
  201. moderadamente populares, igual que
  202. sobre predice estos lenguajes
    poco comunes,
  203. esos lenguajes de rangos muy bajos,
  204. con muy pocos ejemplos en el archivo,
  205. entonces esto esta bien,
  206. esto es un fallo científico